关于app的使用。许多电商平台都设置了下载APP就会提示用户是否同意使用条款或者隐私政策。
用户不同意就会退出APP。同意了就隐藏弹窗。
那怎么才能判断用户下载APP,是否有同意使用呢。并且用户卸载重装后仍然会提示用户同意。
我们可以在用户点击同意时,保存一个关键词在本地。根据这个关键词是否存在本地。
而提示用户是否同意。这样用户同意之后在下次点击APP时就不会提示了。
除非用户卸载重装APP
首页为APP的首次加载页面。在该页面上做判断。
如果存在就隐藏弹窗。(之前做法是建一个新的页面,在这个新的页面做判断再导航。发现同意条款再次进入会有闪屏显现。所以将弹窗放在首页上
点击同意
(此方法最好写在onload之前的钩子函数。不然此页面在每次打开APP时会闪以下)
admit(){
// 同意,保存用户同意使用字段和同意时间戳
try {
uni.setStorageSync('agreement_key', 'yes');
uni.setStorageSync('agreement_date', new Date().toLocaleString());
} catch (e) {
// error
}
// 跳转到首页
// uni.switchTab({
// url:'/pages/index/index'
// })
//隐藏所有弹窗
this.showonebox=false;
//显示首页tabar
uni.showTabBar({animation:true});
},
判断有关键字
//首页判断是否同意
judge(){
uni.getStorage({
key: 'agreement_key',
success: () => {
//不显示弹窗
this.oneagree=false;
uni.showTabBar({animation:true});
},
fail:()=>{
//显示弹窗,隐藏tabar
uni.hideTabBar({animation:true});
this.oneagree=true;
}
})
},
不同意退出
// #ifdef APP-PLUS
if (plus.os.name.toLowerCase() === 'android') {
plus.runtime.quit();
}
else{
const threadClass = plus.ios.importClass("NSThread");
const mainThread = plus.ios.invoke(threadClass, "mainThread");
plus.ios.invoke(mainThread, "exit");
// ios11
plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
}
// #endif