uni-app ios调用接口时好用,但是安卓手机真机运行的时候一直报错
uni-app ios调用接口时好用,但是安卓手机真机运行的时候一直报错
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | macOS Big Sur 11.1 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:macOS Big Sur 11.1
HBuilderX类型:正式
HBuilderX版本号:3.1.2
手机系统:Android
手机系统版本号:Android 10
手机厂商:小米
手机机型:realmeX
页面类型:vue
打包方式:云端
项目创建方式:HBuilderX
示例代码:
return new Promise((resolve, reject) => {
console.log(999,uni.getStorageSync('token'))
let token = uni.getStorageSync('token')
let userName = uni.getStorageSync('userName')
let userId = uni.getStorageSync("userId")
uni.request({
url: baseUrl + url,
method: method,
data: data,
sslVerify:false,
header: {
Authorization: 'bearer ' + token,
userName: userName,
userId: userId,
userRealName: '梅梅2'
},
success: function(res) {
uni.hideLoading();
resolve(res)
},
fail: function(err) {
uni.hideLoading();
console.log(err)
reject(err)
}
})
})
更多关于uni-app ios调用接口时好用,但是安卓手机真机运行的时候一直报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app ios调用接口时好用,但是安卓手机真机运行的时候一直报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的跨平台兼容性问题。iOS正常而Android报错,通常有以下几个原因:
-
SSL证书问题:虽然你设置了
sslVerify:false
,但在某些Android版本上仍可能出现证书验证问题。建议检查服务器证书是否有效,或尝试将域名加入合法域名列表。 -
存储数据问题:Android对
uni.getStorageSync
的读取可能更严格。建议在读取token等数据前先检查是否存在:
let token = uni.getStorageSync('token') || ''
- 网络权限问题:确保AndroidManifest.xml中已正确配置网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
- 请求头格式问题:Android对请求头大小写和特殊字符更敏感。建议统一使用小写:
header: {
'authorization': 'bearer ' + token,
'username': userName,
'userid': userId
}
- 基础库差异:检查Android端是否缺少必要的polyfill,某些ES6特性在低版本Android上可能不支持。
建议先通过Android Studio的Logcat查看详细错误信息,定位具体问题。同时可以在fail回调中输出更详细的错误日志:
fail: function(err) {
console.log('请求失败:', JSON.stringify(err))
reject(err)
}