手机版网站开发工具,肃宁做网站,安全的网站建,带分销功能的小程序uniapp写的项目#xff0c;在hbuilderx中云打包成apk后我在登录存储的token死都获取不到#xff0c;导致后续接口请求头没有token连接不到接口#xff0c;只有运行到手机或者模拟器还有打包成apk后是获取不到#xff0c;其他的小程序还有网页都可以获取到 试过了很多种方法… uniapp写的项目在hbuilderx中云打包成apk后我在登录存储的token死都获取不到导致后续接口请求头没有token连接不到接口只有运行到手机或者模拟器还有打包成apk后是获取不到其他的小程序还有网页都可以获取到 试过了很多种方法uni.getStorageSync、uni.setStorage和uni.getStorage进行存储、vuex还有全局变量...没一个成功的。但是在同一个页面进行存储和取值是可以实现。所以猜想是写法的问题。完整问题如下uniapp打包成apk后uni.setStorageSync只能存储当前页面页面切换时获取不到存储的值_前端-CSDN问答 1.在request.js请求接口页面添加本地存储设置
在这里我把存值和取值都在一个封装的请求方法里面在get请求的请求头上使用tui.getToken()方法把获取的token传入,post请求也可以设置
/*** 常用方法封装 请求文件上传等* author echo. **/
import qs from qs;
const tui {// 设置setToken: function(token) {uni.setStorageSync(token_breed, token)},// 获取getToken() {return uni.getStorageSync(token_breed)},// 接口公共地址commoneUrl: function() {return http://xxx基本接口地址 // 生产},post: function(url, data, type) {var promise new Promise((resolve, reject) {var postData data;uni.request({url: tui.commoneUrl() url,data: qs.stringify(postData),method: POST,header: {content-type: type || application/x-www-form-urlencoded},success: function(res) {resolve(res.data);uni.hideLoading();if (res.data.code 0) {uni.reLaunch({url: /pages/login/login})}// code 0 失效问题},error: function(e) {reject(网络出错);}})});return promise;},get: function(url, data) {var promise new Promise((resolve, reject) {var postData data;uni.request({url: tui.commoneUrl() url,data: postData,method: GET,dataType: json,header: {content-type: application/x-www-form-urlencoded,token: tui.getToken() || },success: function(res) {resolve(res.data);// if (res.data.code 0) {// uni.reLaunch({// url: /pages/tabBar/tabBar// })// }},error: function(e) {reject(网络出错);}});});return promise;},
}export default tui2.main.js中导入request.js文件
并且在vue的原型链上添加全局$tui
import tui from ./utils/request.js
Vue.prototype.$tui tui
3.登录存储
登录使用get请求并且拼接路径和传参之后使用this.$tui.setToken(res.token)方法把token传入
login(){
this.$tui.get(/login,{name:admin}).then(res {if (res.code 200) {this.$tui.setToken(res.token)uni.reLaunch({url: /pages/equip/index // 跳转 - 首页})}else{uni.showToast({title: res.msg,duration: 2000,icon:error});}})
} 4.页面发送请求
不需要再次传入token了 queryEquip() {this.$tui.get(/deviceInfo).then(result{})},
5.效果
在手机基座上请求到了数据了