uni-app 项目中 manifest.json 文件的 "app-plus" -> "useragent" 配置不符合预期
uni-app 项目中 manifest.json 文件的 “app-plus” -> “useragent” 配置不符合预期
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | Windows 11 家庭中文版 22H2 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.96 |
手机系统 | Android |
手机系统版本 | Android 14 |
手机厂商 | 魅族 |
手机机型 | 17pro |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
在项目的 manifest.json 中 “app-plus” -> “useragent” 进行配置
```json
"app-plus" : {
"useragent" : {
"value" : "Mozilla/5.1 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
"concatenate" : false
}
}
打包运行后在服务端打印User-Angent
### 预期结果:
User-Angent 应该为: Mozilla/5.1 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
### 实际结果:
User-Angent 为: uni-app Html5Plus/1.0 (Immersed/43.636364)
### bug描述:
在项目的 manifest.json 中 "app-plus" -> "useragent" 进行配置
"app-plus" : {
"useragent" : {
"value" : "Mozilla/5.1 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
"concatenate" : false
}
}
实际的User-Angent 变成: uni-app Html5Plus/1.0 (Immersed/43.636364)
1 回复
在 uni-app
项目中,manifest.json
文件中的 "app-plus" -> "useragent"
配置用于设置应用的 User-Agent
字符串。如果你发现配置没有达到预期效果,可能是以下几个原因导致的:
1. 配置格式不正确
确保 useragent
的配置格式正确。它应该是一个字符串,例如:
{
"app-plus": {
"useragent": "MyCustomUserAgent/1.0"
}
}
2. 平台限制
useragent
配置在 H5
平台上是有效的,但在其他平台(如 Android
或 iOS
)可能不会生效。你可以通过以下方式检查:
- H5 平台:在浏览器中打开应用,检查
User-Agent
是否被修改。 - App 平台:在
Android
或iOS
中,User-Agent
可能不会被修改,因为这些平台通常使用系统默认的User-Agent
。
3. 未重新编译
修改 manifest.json
文件后,需要重新编译项目。你可以通过以下命令重新编译:
npm run dev
# 或者
npm run build
4. 检查 User-Agent
在代码中打印或检查 User-Agent
,确保它已经被修改。你可以在 onLaunch
生命周期中打印 User-Agent
:
onLaunch: function() {
console.log(navigator.userAgent);
}
5. 使用自定义方式修改 User-Agent
如果 manifest.json
中的配置不生效,你可以尝试在代码中动态修改 User-Agent
。例如,在 H5
平台中,你可以通过以下方式修改:
Object.defineProperty(navigator, 'userAgent', {
value: 'MyCustomUserAgent/1.0',
configurable: false,
writable: false
});