uni-app打包app配置useragent调用原生地图页面回来后useragent被修改
uni-app打包app配置useragent调用原生地图页面回来后useragent被修改
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
示例代码:
“useragent_android” : { “value” : “com.xxx.android”, “concatenate” : true }, “useragent_ios” : { “value” : “com.xxx.ios”, “concatenate” : true },
更多关于uni-app打包app配置useragent调用原生地图页面回来后useragent被修改的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是调用什么API访问服务器的?
更多关于uni-app打包app配置useragent调用原生地图页面回来后useragent被修改的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uni自带的request二次封装公用的请求方法,底下代码这样的 uni.request({ url: __CFG.APIURL + ‘?API=’ + api, dataType: “json”, data: json, method: “POST”, header: { ‘content-type’: ‘application/x-www-form-urlencoded’ }, success: function(res) {},fail: function(error) {} })
是缺个 Html5Plus/1.0 吧?
对,这个没了,除了 Html5Plus/1.0 没了,还有后面的(Immersed/38.0) 状态栏高度这个也没了
这个应该是bug吧,我目前看就 chooseLocation 这个方法回来会这样,选择图片就不会
回复 1***@qq.com: 你开了沉浸式了没?
回复 DCloud_Android_THB: 啥意思,页面自定义顶部那个嘛,调用chooseLocation 有的页面是自定义顶部的,有的是自带的,但是回来都不行
回复 DCloud_Android_THB: 看了下,这个页面不是自定义顶部的,调用回来就没了,然后我看刚刚看了下调用openLocation回来也是这样
回复 1***@qq.com: 沉浸式会影响(Immersed/38.0)内容
回复 1***@qq.com: 问题已经确定,后面版本修复
回复 DCloud_Android_THB: 好的好的,望尽快修复
回复 DCloud_Android_THB: 对了,ios你们最好也看下哈,这边调试时候看安卓有这问题,ios就没打测试包调试这个问题了
回复 DCloud_Android_THB: 还有一个就是,状态栏高度有必要放在这里面嘛,这样会不会导致就像你上面说的那样,有自定义顶部的页面没有,其他页面又有的情况,这样的话app内是不是 useragent 始终都是不统一的,这样服务端校验这个是不是就容易出问题
回复 1***@qq.com: 这个沉浸式是配置设置的 文档 搜索immersed
回复 1***@qq.com: 看起来没有影响,ua的问题,你可以先让服务端忽略后面几个字符,暂时过渡一下,我们后面版本会修复。
回复 DCloud_Android_THB: 好的收到,你说的没影响,但是我用地图的方法的时候返回后会出现 (Immersed/38.0) 这个值也丢失情况,你们也看下,怀疑和 Html5Plus/1.0 一样的问题
这是一个常见的User-Agent被重置的问题。当uni-app应用调用原生地图页面后返回时,WebView的User-Agent会被系统重置为默认值。
解决方案:
- 在App.vue的onShow生命周期中重新设置User-Agent
onShow: function() {
// 每次应用从后台唤醒或页面返回时重新设置User-Agent
if(uni.getSystemInfoSync().platform === 'android') {
plus.navigator.setUserAgent('com.xxx.android', true);
} else {
plus.navigator.setUserAgent('com.xxx.ios', true);
}
}
- 在调用地图页面前后手动管理User-Agent
// 调用地图前保存当前User-Agent
const originalUA = plus.navigator.getUserAgent();
// 地图页面返回后恢复User-Agent
onShow() {
plus.navigator.setUserAgent(originalUA, true);
}
- 在pages.json中为特定页面配置User-Agent
{
"path": "pages/map/map",
"style": {
"app-plus": {
"useragent": {
"value": "com.xxx.android",
"concatenate": true
}
}
}
}


