DCloud_App_Array
DCloud_App_Array
  • 发布:2020-02-13 23:11
  • 更新:2022-11-14 10:30
  • 阅读:30474

iOS平台隐私与政策提示框实现注意问题

分类:HTML5+

根据工业和信息化部关于开展APP侵害用户权益专项整治要求,App提交到应用市场必须满足以下条件:

  • 应用启动运行时需弹出隐私政策协议,说明应用采集用户数据
    这里将详细介绍如何配置弹出“隐私协议和政策”提示框
  • 应用不能强制要求用户授予权限,即不能“不给权限不让用”

iOS系统因为系统授权管理比较完善,调用访问涉及到个人隐私信息的接口都会弹出系统授权提示框,并且在提示框上描述应用使用此权限的用途。
因此没有提供Android平台这样的提示框配置方法,需要开发者在应用中自己实现隐私政策提示框。

数据采集说明

为了持续优化应用及提供统计报表功能,应用在运行过程中会采集以下数据:

  • 应用启动时会采集应用启动时间信息用于优化启动速度,不包含个人隐私信息
  • 应用启动后会采集统计数据用于提供uni统计服务,iOS平台如果用户开启了IDFA则采集数据会包含IDFA信息。uni统计配置方法参考uni-app的manifest.json配置项列表
  • 应用异常时会采集错误日志信息,用于优化改进产品

DCloud通过了国家信息安全等级保护三级,证书编号:11010813802-20001,保障相关数据的安全性
DCloud并非大数据公司,采集的数据是为开发者提供统计服务和产品持续优化,不包含个人隐私相关信息

隐私政策提示框实现

iOS平台没有提供隐私政策模板提示框,所以需要开发者在应用中自己实现隐私政策提示框。

  • uni-app项目
    建议使用nvue页面来实现,渲染速度更快,用于体验更好。
  • 5+ APP(WAP2APP)项目
    简单提示框可以使用系统确认对话框plus.nativeUI.confirm,缺点是无法自定义样式,无法使用链接;
    如果希望自定义隐私政策提示框,可以在Webview中使用html渲染,如在首页使用div渲染、或打开独立的Webview窗口。
    用户点击同意隐私政策时推荐调用plus.runtime.agreePrivacy保存状态,应用启动时调用plus.runtime.isAgreePrivacy获取用户是否已经同意。

系统授权提示框处理

如果应用第一次启动时会弹出系统授权提示框,可以参考以下说明处理。

使用无线数据

提交应用启动时间信息等需要用到网络,所以应用第一次启动时可能会弹出“使用无线数据”系统授权框

目前AppStore上大部分应用在显示隐私政策提示框同时会弹出此授权提示款,不会影响上线审核

发送通知

如果应用使用了uniPush(发送消息通知)功能,在应用启动时会弹出“发送通知”系统授权框

这是因为应用启动时会自动向系统注册要使用消息推送功能引起,如果希望在应用启动时不弹出此授权框,HBuilderX2.6.3+版本可以按以下方法配置配置应用启动时不注册。
在用户接受隐私政策后调用异步获取客户端推送标识信息方法 plus.push.getClientInfoAsync进行注册。

配置方法

打开项目的manifest.json文件,切换到“源码视图”项

  • uni-app项目
    在 "app-plus" -> "distribute" -> "ios" 节点下添加 pushRegisterMode节点
  • 5+ App项目
    在 "plus" -> "distribute" -> "apple" 节点下添加 pushRegisterMode节点

pushRegisterMode字段值设置如下:

        "pushRegisterMode": "manual"

注意plus.push.getClientInfo是同步方法,不会触发向系统注册操作,必须使用异步方法 plus.push.getClientInfoAsync

配置后提交云端打包后生效

本地离线打包参考:https://ask.dcloud.net.cn/article/41#pushRegister

其它授权框

应用启动不会主动调用涉及到系统授权框的功能,但是调用类似定位等功能时也会触发“位置信息”授权框
这时需要修改应用内部业务逻辑,在用户同意隐私政策前不要调用这些API来避免。

1 关注 分享
aliang888

要回复文章请先登录注册

7***@qq.com

7***@qq.com

回复 吃了个大香瓜 :
app.vue 下的 onLaunch中添加如下判断
```js
let userprotocol = uni.getStorageSync('userprotocol');
if(!userprotocol){
uni.navigateTo({
url:'/pages/uni-agree/uni-agree',
animationType:"none"
})
}
```
2021-12-15 16:45
1***@qq.com

1***@qq.com

回复 吃了个大香瓜 :
您好,请问实现了吗。。现在也是遇到这个问题
2021-11-20 12:06
我一笑而过

我一笑而过

能出个ios弹窗的解决方案吗?最好和android一样,简单配置下就可以
2021-11-17 18:13
2***@qq.com

2***@qq.com

ios 能否做成和 android 的一样,这样比较方便,不用写两套
2021-11-12 16:41
3***@qq.com

3***@qq.com

IOS 不用隐私提示框 影响上线嘛
2021-10-29 15:39
吃了个大香瓜

吃了个大香瓜

回复 风云杭州 :
请问是怎么实现的呢
2021-10-20 14:10
吃了个大香瓜

吃了个大香瓜

回复 月圆 :
请问 iOS 实现了吗,要怎么控制弹窗出现同意之后,再开始走其它的代码呢
2021-10-20 14:10
2***@qq.com

2***@qq.com

请问服务协议和隐私政策的<a>标签的href加了路径无效是什么原因,进去是空白,右上角复制链接提示null
2021-09-17 14:48
带车聘

带车聘

我的app用的是腾讯的消息推送TPNS,设置了pushRegisterMode重新打包无效
2021-09-09 14:40
有问

有问

希望能和安卓的配置一样,先弹出提示框,授权后再进入,统一起来。
2021-07-29 10:42