8***@qq.com
8***@qq.com
  • 发布:2023-08-02 11:18
  • 更新:2023-08-03 09:24
  • 阅读:585

【报Bug】androidPrivacy.json文件配置隐私协议,打开超链接最后是空白页,无论是使用本地文件还是线上网页链接

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 22H2

HBuilderX类型: 正式

HBuilderX版本号: 3.8.7

手机系统: Android

手机系统版本号: Android 11

手机厂商: OPPO

手机机型: OPPO Reno6 5G

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

androidPrivacy.html文件

<!DOCTYPE html>  
<html>  

<head>  
  <meta charset="utf-8" />  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />  
  <title>服务协议</title>  
</head>  

<body>  
    《服务协议》内容  
</body>  

<script>  
  console.log('服务协议------------------------------')  
</script>  
</html>

androidPrivacy.json 文件:

  1. 直接写路径

    {  
    "version": "8",  
    "prompt": "template",  
    "title": "服务协议和隐私政策",  
    "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https://www.baidu.com\">《服务协议》</a>和<a href=\"static/androidPrivacy.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",  
    "buttonAccept": "同意并接受",  
    "buttonRefuse": "暂不同意",  
    "hrefLoader": "system",  
    "backToExit": true,  
    "second": {  
        "title": "确认提示",  
        "message": "  进入应用前,你需先同意<a href=\"https://www.baidu.com\">《服务协议》</a>和<a href=\"static/androidPrivacy.html\">《隐私政策》</a>,否则将退出应用。",  
        "buttonAccept": "同意并继续",  
        "buttonRefuse": "退出应用"  
    },  
    "disagreeMode": {  
        "support": false,  
        "loadNativePlugins": false,  
        "visitorEntry": false,  
        "showAlways": true  
    },  
    "styles": {  
        "borderRadius": "5px",  
        "title": {  
            "color": "#000"  
        },  
        "buttonAccept": {  
            "color": "#333"  
        },  
        "buttonRefuse": {  
            "color": "#333"  
        }  
    }  
    }
  2. 加反斜杠

    {  
    "version": "8",  
    "prompt": "template",  
    "title": "服务协议和隐私政策",  
    "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https:\/\/www.baidu.com\">《服务协议》</a>和<a href=\"static\/androidPrivacy.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",  
    "buttonAccept": "同意并接受",  
    "buttonRefuse": "暂不同意",  
    "hrefLoader": "system",  
    "backToExit": true,  
    "second": {  
        "title": "确认提示",  
        "message": "  进入应用前,你需先同意<a href=\"https://www.baidu.com\">《服务协议》</a>和<a href=\"static/androidPrivacy.html\">《隐私政策》</a>,否则将退出应用。",  
        "buttonAccept": "同意并继续",  
        "buttonRefuse": "退出应用"  
    },  
    "disagreeMode": {  
        "support": false,  
        "loadNativePlugins": false,  
        "visitorEntry": false,  
        "showAlways": true  
    },  
    "styles": {  
        "borderRadius": "5px",  
        "title": {  
            "color": "#000"  
        },  
        "buttonAccept": {  
            "color": "#333"  
        },  
        "buttonRefuse": {  
            "color": "#333"  
        }  
    }  
    }
  3. 单个“/”符号换成2个连续的"\"符号

    {  
    "version": "8",  
    "prompt": "template",  
    "title": "服务协议和隐私政策",  
    "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https:\\\\www.baidu.com\">《服务协议》</a>和<a href=\"static\\androidPrivacy.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",  
    "buttonAccept": "同意并接受",  
    "buttonRefuse": "暂不同意",  
    "hrefLoader": "system",  
    "backToExit": true,  
    "second": {  
        "title": "确认提示",  
        "message": "  进入应用前,你需先同意<a href=\"https://www.baidu.com\">《服务协议》</a>和<a href=\"static/androidPrivacy.html\">《隐私政策》</a>,否则将退出应用。",  
        "buttonAccept": "同意并继续",  
        "buttonRefuse": "退出应用"  
    },  
    "disagreeMode": {  
        "support": false,  
        "loadNativePlugins": false,  
        "visitorEntry": false,  
        "showAlways": true  
    },  
    "styles": {  
        "borderRadius": "5px",  
        "title": {  
            "color": "#000"  
        },  
        "buttonAccept": {  
            "color": "#333"  
        },  
        "buttonRefuse": {  
            "color": "#333"  
        }  
    }  
    }
  4. 也试过修改hrefLoader字段,"system|default" 、 "system" 、 "default",都试过了

操作步骤:

1、配置androidPrivacy.json文件、androidPrivacy.html文件
2、打包或者运行到手机-使用自定义基座
3、打开应用会自动打开《服务协议和隐私协议》弹窗,点击其中的超链接《服务协议》、《隐私协议》,会打开一个网页
4、打开的网页是完全空白的,点击右上角三个点图标的菜单里面的复制链接也是提示:“复制到剪贴板null”

预期结果:

本来应该正常打开androidPrivacy.json文件里面配置的外部网页、本地html文件androidPrivacy.html并正常展示其中的内容

实际结果:

打开的网页是完全空白的,点击右上角三个点图标的菜单里面的复制链接也是提示:“复制到剪贴板null”

bug描述:

根据
androidPrivacy.json文件message字段的a标签href无论是本地文件还是外部线上网页链接都不行,点击打开都是空白页面,点击右上角三个点图标的菜单里面的复制链接也是提示:“复制到剪贴板null”,代表跳转的页面链接是空的,后面我以为是字符串转译问题,就去找其他人的配置,无论是dCloud社区还是其它平台都找过了,无论链接的字符串是 href=\"https:\/\/www.baidu.com\" (https链接里的单个“\”替换成“\/”)还是 href=\"static\androidPrivacy.html\"的方式(链接显示有问题,我输入的格式应该是图片里那样的,将static后面的单个“\”符号替换成2个连续的“/”符号,直接输入2个连续的“\”符号在社区发布后,内容会变成单个的“\”),最后都是一样的打开空白页。
也试过修改hrefLoader字段,"system|default" 、 "system" 、 "default",都试过了。system的时候,点击后没有任何反应,default和“system|default”时,都是打开空白页面。

为了解决问题参考过的文章:
《隐私政策提示框内容中的链接使用本地 html 页面地址(androidPrivacy.json中所用)》
https://blog.csdn.net/qq_39410252/article/details/123138604

《uniapp打包安卓APP,隐私协议弹窗文件配置踩坑》
https://www.hanting.site/2022/09/21/sourcecode/185/

2023-08-02 11:18 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com (作者)

问题已经解决了,原因是manifest.json的视图界面切换后,不知为何,之前已经勾选的‘使用原生提示框’选项变成未勾选,重新勾上后打包一遍就可以了

要回复问题请先登录注册