在MADP2.0项目中隐私政策应在初始化SDK之前
在启动页DemoMainActivity中onCreate中,首先判断是否是第一次进入app,非首次直接initSDK,首次弹出隐私政策弹框,用户同意后才能initSDK,不同意则退出app。
if (isFirst) {
//非首次打开app,直接初始化
initSdk();
} else {
//首次打开app,先展示隐私弹窗
PrivacyAlertDialog privacyAlertDialog = new PrivacyAlertDialog(this);
privacyAlertDialog.setMessage(spannableString);
privacyAlertDialog.setTitle("服务协议和个人信息保护政策");
privacyAlertDialog.setNoOnclickListener("不同意", new PrivacyAlertDialog.onNoOnclickListener() {
@Override
public void onNoClick() {
SpUtils.getInstance().setValue("isFirst", false);
privacyAlertDialog.dismiss();
AppManagerDelegate.getInstance().exitApp();
}
});
privacyAlertDialog.setYesOnclickListener("同意", new PrivacyAlertDialog.onYesOnclickListener() {
@Override
public void onYesClick() {
SpUtils.getInstance().setValue("isFirst", true);
privacyAlertDialog.dismiss();
initSdk();
}
});
privacyAlertDialog.show();
}
原sdk初始化是在DemoApplication中的,现将其放在DemoMainActivity中,根据隐私弹窗情况调用
//初始化sdk
private void initSdk() {
Engine.initEnvironment(getApplication(), true, false, false, MADConfig.LaunchModel.SYNC, "", 0, new NetWorkOkHttpAdapter(),new Engine.InitEnvCallback() {
@Override
public void doInitFinish() {
try {
//指纹
WXSDKEngine.registerModule("fingerprint", WXFingerPrintModule.class);
} catch (WXException e) {
e.printStackTrace();
}
}
});
try {
BindingX.register();
} catch (WXException e) {
e.printStackTrace();
}
AppManagerDelegate.getInstance().addActivity(DemoMainActivity.this);
Engine.startup();
}