项目场景:
用户隐私协议审核
国内Android端上线应用是需要在进入程序时弹出一个表述该程序的《隐私政策》和《用户协议》以符合工信部政策
问题描述
在显示隐私协议时就已经初始化程序了
由于使用的是react-native开发,导致我们会引用很多第三方库以及绝大部分的代码逻辑都是在rn端进行编写,而部分第三方库会自己进行 react-native link 操作。也就是在 react-native : 0.59 后省略掉了这一步操作,所以会在进入程序时会立刻进行MainActivity初始化,导致第三方库链接原生不可控。
原因分析:
预期流程:
- 用户点击APP程序
- 呼出启动页 2s (SplashActivity)
- 隐私政策和用户协议页 (PrivacyAgreementActivity)
- 同意后进入程序开始初始化 (MainActivity)
目前流程:
- 用户点击APP程序
- 呼出启动页 2s (MainActivity)
- 开始初始化 (react-native)
- 呼出隐私政策和用户协议页 (react-native)
MainActivity
会进行rn端的所有初始化,以及那些库,比如你的expo
、react-native-orientation-locker
等会自动进行链接原生导致权限审核不通过。
解决方案:
原生代码进行分离启动页和主活动页
有些帖子会说去注意import导入,但是用了很多库的情况下,他们部分需要与原生进行react-native link 肯定是忙不过来的,而且极其浪费时间,没法保证哪个会不会立刻初始化
原生方面分离两个模块 一个是启动页Activity 一个是原来的MainActivity
在第一次进入程序时判断 本地是否存在 同意协议的状态,没有就进入启动页Activity 同意后存储这个状态再跳转到MainActivity
存在同意协议的状态就直接去MainActivity
以上是具体逻辑,代码就不贴了,有什么问题可以留言