mui或者uni退出app
在安卓上可以使用
//1.1 var backButtonPress = 0; $.back = function(event) { backButtonPress++; if(backButtonPress > 1) { plus.runtime.quit(); } else { plus.nativeUI.toast('再按一次退出应用'); } setTimeout(function() { backButtonPress = 0; }, 1000); return false; }; //1.2 mui.back = function() { var btn = ["确定", "取消"]; mui.confirm('确认关闭当前窗口?', 'Hello MUI', btn, function(e) { if(e.index == 0) { plus.runtime.quit(); } }); }
H5+官方文档提供的plus.runtime.quit();对Android有效,但对iOS无效。但实际上,iOS系统原生提供了[[NSThread mainThread] exit];方法可以强制退出当前App,并且H5+支持调用iOS原生类的方法(通过plus.ios.importClass和invoke函数),于是就可以变相实现强制退出iOS的App了,代码如下:
if (mui.os.ios) { const threadClass = plus.ios.importClass("NSThread"); const mainThread = plus.ios.invoke(threadClass, "mainThread"); plus.ios.invoke(mainThread, "exit"); } else if (mui.os.android) { plus.runtime.quit(); }
我自己项目所使用的
document.getElementById("tuic").addEventListener("tap", function(){
var old_back = mui.back;
var btnArray = ['是', '否'];
mui.confirm('您确定退出?', '', btnArray, function(e) {
//当选择是的时候执行
if(e.index == 0) {
//判断当前设备类型
if(mui.os.ios || mui.os.ipad){
plus.storage.clear();
const threadClass = plus.ios.importClass("NSThread");
const mainThread = plus.ios.invoke(threadClass, "mainThread");
plus.ios.invoke(mainThread, "exit");
}else if(mui.os.android) {
plus.storage.clear();
// 获取当前webview窗口对象
var curr = plus.webview.currentWebview();
//获取所有已经打开的webview窗口
var wvs = plus.webview.all();
for(var i = 0, len = wvs.length; i < len; i++) {
//关闭除当前页面外的其他页面
if(wvs[i].getURL() == curr.getURL())
//遇到当前页跳过
continue;
//非当前页执行关闭
plus.webview.close(wvs[i]);
}
/*//打开login页面
plus.webview.open('Signin.html','Signin.html');*/
//执行关闭当前页面
curr.close();
old_back();//退出app
}else{
//runtime 运行环境管理模块执行退出 (一般运行不到这里)
plus.runtime.quit();
}
}
})
})

浙公网安备 33010602011771号