uni-app 华为原生隐私政策提示框点击隐私政策后闪退
uni-app 华为原生隐私政策提示框点击隐私政策后闪退
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | 12.6 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
HBuilderX类型:正式
HBuilderX版本号:3.95
手机系统:Android
手机系统版本号:Android 7.0
手机厂商:华为
手机机型:BND-AL10
页面类型:vue
vue版本:vue2
打包方式:云端
示例代码:
{
"version": "1",
"prompt": "template",
"title": "服务协议和隐私政策",
"message": " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br> 你可阅读<a href="">《服务协议》</a>和<a href="">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
"buttonAccept": "同意并接受",
"buttonRefuse": "暂不同意",
"hrefLoader": "default",
"backToExit":"false",
"second": {
"title": "确认提示",
"message": " 进入应用前,你需先同意<a href="">《服务协议》</a>和<a href="">《隐私政策》</a>,否则将退出应用。",
"buttonAccept": "同意并继续",
"buttonRefuse": "退出应用"
},
"disagreeMode":{
"support": false,
"loadNativePlugins": false,
"visitorEntry": true,
"showAlways": false
},
"styles": {
"backgroundColor": "#00FF00",
"borderRadius":"5px",
"title": {
"color": "#ff00ff"
},
"buttonAccept": {
"color": "#ffff00"
},
"buttonRefuse": {
"color": "#00ffff"
},
"buttonVisitor": {
"color": "#00ffff"
}
}
}
操作步骤:
打开APP点击隐私协议立马返回,或加载中触摸底部返回按钮闪退
预期结果:
正常返回上一级
实际结果:
APP闪退
bug描述:
华为手机第一次安装原生协议弹框打开协议后点击手机底部虚拟返回按钮会导致APP闪退。 目前发现触发条件是:
- 点开协议后立马触摸返回按钮闪退
- 协议内容快加载完成时触摸返回按钮闪退
使用的是原生隐私政策提示框非自定义!目前测试3款华为手机有虚拟返回按钮的都会出现
1 回复
在 uni-app
中,如果你在华为设备上遇到点击隐私政策提示框后闪退的问题,可能是由于以下原因导致的:
1. 隐私政策链接问题
- 确保你提供的隐私政策链接是有效的,并且可以在设备上正常打开。
- 如果链接无效或无法访问,可能会导致应用闪退。
2. WebView 配置问题
- 在
uni-app
中,隐私政策通常是通过WebView
打开的。如果WebView
配置不正确,可能会导致闪退。 - 确保你在
manifest.json
中正确配置了WebView
的相关设置。
3. 权限问题
- 确保你的应用已经获取了必要的权限,例如
INTERNET
权限,以便能够正常访问隐私政策链接。 - 在
manifest.json
中添加以下权限:<uses-permission android:name="android.permission.INTERNET" />
4. 华为设备兼容性问题
- 某些华为设备可能存在兼容性问题,导致在打开隐私政策链接时闪退。
- 你可以尝试在
manifest.json
中禁用华为的隐私政策提示框,使用自定义的提示框来替代。
5. 调试与日志
- 使用
adb logcat
或uni-app
的调试工具查看应用闪退时的日志,找出具体的错误信息。 - 根据日志中的错误信息进行针对性的修复。
6. 自定义隐私政策提示框
- 如果华为原生隐私政策提示框存在问题,你可以考虑使用自定义的隐私政策提示框。
- 在
uni-app
中,你可以使用uni.showModal
或uni.showActionSheet
来显示自定义的隐私政策提示框,并在用户点击后跳转到隐私政策页面。
示例代码
以下是一个使用 uni.showModal
显示自定义隐私政策提示框的示例:
uni.showModal({
title: '隐私政策',
content: '请阅读并同意我们的隐私政策',
confirmText: '同意',
cancelText: '不同意',
success: function (res) {
if (res.confirm) {
// 用户点击了同意,跳转到隐私政策页面
uni.navigateTo({
url: '/pages/privacy/privacy' // 替换为你的隐私政策页面路径
});
} else if (res.cancel) {
// 用户点击了不同意,可以提示用户无法继续使用应用
uni.showToast({
title: '您需要同意隐私政策才能继续使用应用',
icon: 'none'
});
}
}
});