Skip to content

隐私常见问题排查

like001 edited this page Jul 18, 2022 · 43 revisions

1 云端隐私逻辑与适配介绍

先查看开发者文档,了解背景知识:开发者文档:集成云端隐私

云端隐私弹窗的基本逻辑

  • 插件框架SDK根据本地记录以及云端记录,决定是否需要弹出云端隐私弹窗。
  • 本地记录存储在手机上,云端记录存储的服务器上。有本地记录的情况下,不会去获取云端记录。
  • 只要有其中一个记录,则不会弹出云端隐私弹窗。在没有本地记录与云端记录的情况下,需要弹出云端隐私弹窗。
  • 在需要弹出云端隐私弹窗的情况下,SDK会通过网络请求,获取对应云端隐私链接,弹出云端隐私弹窗,并展示云端隐私的链接。
  • 如果网络请求没有获取到符合要求的数据,则不会弹出云端隐私弹窗。
  • 弹出过隐私弹窗,如果需要再次弹出,需要再此手机上删除设备。如果不删除设备切之前同意过(无论是否在其他设备上是否重新绑定),都无法弹出

本地记录与云端记录的保存与清除

  • 保存本地记录:用户点击云端隐私弹窗的同意按钮;没有本地记录,但是有云端记录的情况下,会保存本地记录。
  • 清除本地记录:卸载App、解绑设备或清除所有数据(该项仅Android适用)
  • 保存云端记录:用户点击云端隐私弹窗的同意按钮
  • 清除云端记录:解绑设备

插件代码需要去掉过时Api调用,使用PrivacyEvent监听获取在线隐私同意状态

插件使用云端隐私之后,需要去掉插件代码中原有本地隐私相关的逻辑。其中包括

  • alertLegalInformationAuthorization
  • openPrivacyLicense
  • previewLegalInformationAuthorization
  • privacyAndProtocolReview
  • batchGetDeviceDatas([{ did: Device.deviceID, props: ["prop.s_auth_config"] }])
  • CommonSetting中本地隐私的配置项

共享设备

  • 共享设备也支持弹出云端隐私弹窗
  • 共享设备也是根据本地记录以及云端记录决定是否云端隐私弹窗,没有特殊逻辑
  • 共享设备和主设备(暂且这么称呼)共用同一份云端记录。也就是说,某一方点击云端隐私弹窗的同意按钮之后,就会保存云端记录,另一方也能够读取到。另外,如果读取到了云端记录,在没有本地记录的情况下会保存本地记录,下次进入插件则读取本地记录即可,不用读取云端记录。

云端隐私更新弹窗

  • 在设备有本地记录,且平台上有配置云端隐私变更版本的前提下,如果本地记录的版本小于云端变更版本,则会弹云端隐私更新弹窗。
  • 云端隐私更新弹窗与普通云端隐私弹窗的区别在于,云端隐私更新弹窗会显示变更内容。 云端隐私弹窗 云端隐私变更弹窗

2 云端隐私弹窗常见问题

问题1 云端隐私弹窗无法弹出

1. 检查平台配置以及插件代码是否去掉了本地隐私弹窗的调用

先检查在iot开发者平台上,指定插件版本,是否已经正确配置云端隐私。如果已经配置,其状态是否为上线。非上线状态的云端隐私,只有白名单用户可以获取到。 配置示例

去掉本地隐私弹窗的调用

2. 确定是否android、iOS两端都有问题

3. 检查是否有本地记录或者云端记录

在已经正确配置云端隐私的情况下,为了避免本地记录或云端记录的干扰,可以通过解绑设备的方式,清除该手机上的本地记录以及云端记录。(注意,这种方式并不能清除其它手机上,该设备的本地记录)在清除记录之后,再次进入插件,查看是否有云端隐私弹窗。

4. 抓包查看获取云端隐私链接的接口的返回情况(手机操作过程记得录屏)

如果清除本地与云端记录之后,依然无法弹出云端隐私弹窗,则通过抓包方式排查。

服务端链接:https://api.io.mi.com/app/v2/plugin/get_protocol

抓包教程:Android端抓包 iOS端抓包

抓包结果示例

SDK会向get_protocol接口发起4个网络请求,对应type_int含义为:1. 隐私政策 2.用户协议 3. 用户体验计划 4.儿童保护规则

注意:

  • 线上release包不支持抓包,需要使用开发包,即调试环境
  • 抓包之前打开明文传输的开关
  • 可以通过Charles的Sequence -> Filter进行过滤,例如:

抓包过滤示例

5. 如果type_int为1的请求,返回的数据异常,则可能服务端存在问题,可以将提工单到服务端,并附上抓包文件与录屏文件。

6. 若服务端返回结果正常,则在米家App中提交反馈日志,提工单到米家App,并在工单中说明问题复现时间,所在地区、用户id,抓包文件与录屏文件。

问题2 云端隐私弹窗只有隐私政策,没有用户协议

例如: 示例

1. 检查平台配置

查看iot平台上,是否正确配置用户协议链接

2. 确定是否android、iOS两端都有问题

3. 抓包查看获取用户协议链接的接口的返回情况(手机操作过程记得录屏)

参照问题1中第4步,此时type_int为2

4. 如果type_int为2的请求,返回的数据异常,则可能服务端存在问题,可以将提工单到服务端,并附上抓包文件与录屏文件。

5. 若服务端返回结果正常,则在米家App中提交反馈日志反馈,提工单到米家App,并在工单中说明问题复现时间,所在地区、用户id,抓包文件与录屏文件。

问题3 点击隐私链接或者其它链接,跳转之后显示为空白

1.进入之后显示全空白并无任何提示

示例

问题4 云端隐私弹窗弹出异常,不符合预期

  • 从7.3(SDK 10066)版本开始,Android端支持在开发者模式下,将云端隐私状态显示出来,方便定位问题。

  • 前置条件是打开“开发模式”以及“进入插件是否Toast云端隐私信息”的开关(路径为 我的-开发者选项-开发者模式, 具体如下图所示)。

  • 开发者在打开这两个开关以后,进入插件,会出现如下弹窗。将弹窗内容录屏或者截屏后,附在工单中。

Toast云端隐私信息

开发模式开关

进入插件是否Toast云端隐私信息开关

设置--更多设置-- 法律信息常见问题

问题1 点击法律信息提示"获取不到隐私,请检查手机网络或联系米家反馈问题"

提示该问题是因为没有拿到隐私链接,出现该问题需要以下步骤排查

  • 先检查插件隐私是属于本地隐私还是云端隐私
  • 本地隐私需要自查本地隐私文件是否存在
  • 云端隐私需要参考第2条关于《2.云端隐私弹窗常见问题》步骤进行排查 云端隐私排查步骤

问题2 点击隐私链接或者其它链接,跳转之后显示为空白

进入隐私、用户协议页面显示空白

问题3 pdf下载

1.PDF导出字体出现断裂

导出PDF方案

采用WebView的createPrintDocumentAdapter创建文档打印器,进行pdf导出。

出现问题原因

WebView进行分页时无法识别文字或者图片,又无可以设置的参数,因此会出现字体断裂情况。现在没有统一的处理方案应对所有厂商不同类型、内容的隐私协议文件

解决建议

厂商自行对出现断裂上方或者下方加些空格,慢慢调整文件内容。PDF支持导出是合规性问题,字体出现断裂是体验问题,如果问题影响不严重也可以等后续看看有没有更好的导出方案。 或者开发者有更好的导出方案欢迎提供。

2.PDF点击导出后提示“文件损坏”

 进入手机目录Documents/external目录查看导出的pdf文件,使用其他阅读器是否正常。如果其他阅读器打开正常,那说明是选择默认的阅读器有问题

4.只显示隐私协议不显示用户协议

用户协议缺失排查

5.隐私政策/用户协议中超链接链接点击后无法跳转

使用米家7.2以上版本再重新验证是否还有问题

Clone this wiki locally