• 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();
                            
                            }
                        }
                    })
                })
  • 相关阅读:
    汉语6级试卷(转)
    看《第一滴血4》
    又爱又恨奥沙利文
    最爱“剁椒鱼头”
    中国移动用户请注意长途电话包有陷阱
    推荐一个免费原版KTV / MTV下载网站
    传说中的人品问题
    信息更改致乒乓球爱好者
    贴几张我家乐乐的照片
    Web Parts: From SharePoint to ASP.NET 2.0
  • 原文地址:https://www.cnblogs.com/li-sir/p/12076360.html
Copyright © 2020-2023  润新知