uni-app mainfest.json 文件中 app-plus 配置 useragent 在安卓端无效
uni-app mainfest.json 文件中 app-plus 配置 useragent 在安卓端无效
操作步骤:
- 导入附件,运行uniapp项目
- 主页面点击“打开webview nvue文件”按钮
- 打开nweb.nvue文件, 打印的 useragent 没有包含TestCustomUserAgent/andorid内容(见图1)
预期结果:
安卓端 在nvue文件内,可以获取自定义的 useagent 内容
实际结果:
没有获取自定义ua的内容
bug描述:
【安卓端】:
manifest.json 中配置
"useragent" : {
"value" : "TestCustomUserAgent",
"concatenate" : true
},
"useragent_android" : {
"value" : "TestCustomUserAgent/andorid",
"concatenate" : true
}
在nvue文件中 使用webview加载h5, h5页面获取的 navigator.userAgent 没有附带上 自定义的内容(见附件 截图,图1),vue文件正常(见附件文件 图2)
相关链接:
| 信息项 | 内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.2.16 |
| 手机系统 | Android |
| 手机系统版本号 | Android 10 |
| 手机厂商 | 小米 |
| 手机机型 | 红米 note7 |
| 页面类型 | nvue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |


更多关于uni-app mainfest.json 文件中 app-plus 配置 useragent 在安卓端无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
6 回复
android 平台 nvue页面的webview暂时未支持配置useagent
那怎么搞?
希望能 支持配置~~~
真是特么多的坑啊。
这是一个已知的uni-app平台差异问题。在Android平台的nvue页面中,WebView组件默认使用系统WebView内核,而manifest.json中配置的useragent对系统WebView不生效。
解决方案:
- 在nvue页面中手动设置UserAgent:
// 在nvue页面的webview组件中设置
<webview ref="webview" :src="url" @onPostMessage="handleMessage"></webview>
// 在mounted或页面加载时
mounted() {
const wv = this.$refs.webview;
wv.overrideUrlLoading({mode: 'reject'}, (e) => {});
wv.overrideUserAgent('Mozilla/5.0 (TestCustomUserAgent/android) ...');
}
- 使用条件编译处理平台差异:
// #ifdef APP-PLUS
const ua = navigator.userAgent;
// 在Android nvue中可能需要通过plus.webview.currentWebview()获取
const current = plus.webview.currentWebview();
if(current) {
current.overrideUserAgent('自定义UA内容');
}
// #endif


