1 前置条件
- 
hx 3.1.23之后版本 
- 
仅支持uni-app 
- 
仅Android 
2 功能说明
HX 3.1.23之前,uni-app默认支持了隐私协议弹窗功能,开发者只要根据文档在manifest.json中配置对应的文案,即可使用固定模板的隐私弹窗
相关的操作文档:https://ask.dcloud.net.cn/article/36937
HX 3.1.23之后,应开发者的需求。uni-app 支持自定义隐私弹窗样式。
隐私弹窗的一级布局文件为
dcloud_custom_privacy_dialog_layout.xml
对应的界面:  
 
隐私弹窗的二级布局文件为
dcloud_custom_privacy_second_dialog_layout.xml
对应的界面:  
有需要自定义样式的开发者,只要保证关键组件id不变,界面布局可以自由更改。
下面是一个具备基础元素的布局示例。  
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/ll_content_layout"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:background="@drawable/dcloud_dialog_shape"  
    android:gravity="center"  
    android:orientation="vertical">  
    <!--隐私协议标题-->  
    <TextView  
        android:id="@+id/tv_custom_privacy_title"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:layout_marginBottom="12dp"  
        android:gravity="center"  
        android:paddingTop="20dp"  
        android:textColor="#000000"  
        android:textSize="16sp"  
        android:textStyle="bold" />  
    <!--隐私协议内容-->  
    <TextView  
        android:id="@+id/tv_privacy_content"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:paddingLeft="12dp"  
        android:paddingTop="6dp"  
        android:paddingRight="12dp"  
        android:paddingBottom="2dp"  
         <!--这里可以控制协议内容中的超链接样式,包括链接颜色以及是否有下划线-->  
        android:tag="{'linkColor':'#FF00FF','linkLine':false}" />  
    <!--用户按钮-->  
    <LinearLayout  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:paddingLeft="12dp"  
        android:paddingTop="2dp"  
        android:paddingRight="12dp"  
        android:paddingBottom="8dp">  
        <Button  
            android:id="@+id/btn_custom_privacy_cancel"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_weight="1"  
            android:background="@null"  
            android:paddingLeft="12dp"  
            android:paddingTop="10dp"  
            android:paddingRight="12dp"  
            android:paddingBottom="10dp"  
            android:text="取消"  
            android:textColor="@drawable/dcloud_custom_rich_dialog_button_text_selecter"  
            android:textSize="14sp"  
            android:visibility="gone" />  
        <Button  
            android:id="@+id/btn_custom_privacy_sure"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_weight="1"  
            android:background="@null"  
            android:paddingLeft="12dp"  
            android:paddingTop="10dp"  
            android:paddingRight="12dp"  
            android:paddingBottom="10dp"  
            android:text="确认"  
            android:textColor="@drawable/dcloud_custom_rich_dialog_button_text_selecter"  
            android:textSize="14sp"  
            android:visibility="gone" />  
    </LinearLayout>  
</LinearLayout>明确一个基本原则,隐私弹窗的布局文件 完全按照android 布局文件格式标准。
具备Android原生开发能力的人,可以在不修改基本元素组件id的前提下,自由发挥。  
将修改后的同名布局文件,以原生插件的方式提交打包,即可完成对隐私弹窗的覆盖。
3 演示操作步骤
第一步配置默认隐私协议文案:
此时的运行效果
第二步 新建一个原生插件
说明文档:https://nativesupport.dcloud.net.cn/NativePlugin/README
在对应的android/res/layout 目录下,添加一二级布局文件
目录结构如下:  
第三步 修改隐私协议弹窗样式
这里只简单修改一下超链接样式。如果需要修改其他内容,需要自行查询android xml布局
将修改后的xml布局保存,打包成原生插件
第四步,集成原生插件,云打包验证效果。
提交云端打包后的运行效果:
演示插件
演示插件:
https://ext.dcloud.net.cn/plugin?id=5581  
演示项目
https://download.dcloud.net.cn/ASK_RESOURCE/PrivacyDemo.zip
 
             
             
             
			 
                                                                            











 
                                                                     
                                                                     
                                                                     
                                                                    