应用研发平台EMAS 推送隐私合规的相关的延迟初始化 逻辑是什么?
刚开始可以 PushServiceFactory.init(this)
同意后再 register通道吗?
还是同意以后 再init(this) 和 register
https://developer.aliyun.com/article/1027386?spm=a2c6h.14164896.0.0.619c3c61n0QbKq
此回答整理自“应用研发平台EMAS开发者交流群”。
初始化逻辑应该是在应用启动时调用,以确保推送服务能够正常运行。而在用户同意接收推送通知后,应该调用 register 方法来注册通道,以便将推送通知发送到用户设备上。
具体来说,可以采用以下步骤来实现推送通知的延迟初始化和注册:
安卓端集成移动数据分析的隐私合规处理。
SDK的需初始化两次:
第一次为用户同意隐私协议。
第二次在application的onCreate中,但前提条件为用户同意隐私协议。
注意:
必须先调用初始化,才能调用埋点接口。否则会crash. 相关crash日志:java.lang.RuntimeException: getDefaultTracker error,must call setRequestAuthentication method first。
把初始化后移到隐私框之后,会影响到sdk对应用生命周期的监控、影响1010等关键事件和pv相关逻辑。需要应用将sdk未监控到的应用生命周期补全:应用可以在用户点击同意法律条款的时候,使用调用方法UTMCAppStatusMonitor.getInstance().onActivityStarted(null);来补全漏掉的生命周期监控。
对于EMAS推送服务来说,延迟初始化和隐私合规相关逻辑的设计主要取决于您的应用程序的具体需求和场景。以下是一个可能的实现方案:
在应用启动时,首先调用 EMAS PushServiceFactory.init(this),这是为了确保即使用户没有同意接收推送通知,您的应用也可以正常工作。这通常在 onCreate
方法中完成。
当用户第一次进入应用时,如果还没有同意接收推送通知,可以通过弹出一个提示框或者引导用户去同意接收推送通知。在这个过程中,不要立即调用 EMAS PushServiceFactory.register(TAG),而是将其推迟到用户点击同意按钮之后再执行。这样做的目的是尊重用户的隐私权,避免在用户不知情的情况下收集他们的信息。
当用户点击同意按钮后,立即调用 EMAS PushServiceFactory.register(TAG),将您的应用程序注册到EMAS服务器。同时,您还可以在这里获取用户的设备标识(regId),并将其发送到Ali云服务器,以便注册到阿里云服务器。
如果用户选择拒绝接收推送通知,您可以在 onPause
方法中调用 EMAS PushServiceFactory.unregister(),以便取消注册您的应用程序到EMAS服务器。
以上就是延迟初始化和隐私合规相关逻辑的一个基本设计思路。具体的实现方式可能会因为您的应用程序的需求和场景有所不同。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。