4***@qq.com
4***@qq.com
  • 发布:2019-04-03 09:11
  • 更新:2019-04-03 17:55
  • 阅读:1090

新建5+APP发行后,点手机返回键,程序直接退出了。大神给帮个忙看下

分类:HBuilderX

新建5+APP项目,用的默认模板。就加了个网址。发行后点手机返回键,就退出了。怎么实现点返回键,实现浏览的网页,每页返回啊

2019-04-03 09:11 负责人:无 分享
已邀请:
赵虎威

赵虎威

老帖子有做法,就是监听返回按钮,自己做后退处理。具体搜一下老帖子吧

  • 4***@qq.com (作者)

    刚接触这个。不太懂这个啊。能给下代码吗?我添加下。谢谢了

    2019-04-03 16:55

4***@qq.com

4***@qq.com (作者) - 老男人

这个代码好像是。我不知道放在那个地方啊

var plusReady = function (callback) {
if (window.plus) {
callback();
} else {
document.addEventListener('plusready', callback);
}
};

plusReady(function () {
var firstBack = 0;
var handleBack = function () {
var currentWebview = plus.webview.currentWebview();
var topWebview = plus.webview.getTopWebview();
var now = Date.now || function () {
return new Date().getTime();
};

    currentWebview.canBack(function (evt) {    
        /**    
         * 有可后退的历史记录,则后退。    
         * 否则,关闭当前窗口。    
         * 如果当前窗口是入口页,那么执行退出的逻辑。    
         */    
        if (currentWebview.id === plus.runtime.appid) {    
            if (!firstBack) {    
                firstBack = now();    
                plus.nativeUI.toast('再按一次退出应用');    

                setTimeout(function () {    
                    firstBack = 0;    
                }, 2000);    
            } else if (now() - firstBack < 2000) {    
                plus.runtime.quit();    
            }    
        } else {    
            if (evt.canBack) {    
                history.back();    
            } else {    
                currentWebview.close('auto');    
            }    
        }    
    });    
};    

plus.key.addEventListener('backbutton', handleBack);    

});

  • 赵虎威

    就是这个,放在index.html<script>中

    2019-04-03 17:11

  • 4***@qq.com (作者)

    回复 赵虎威:放到里面还是按返回键后就退出了。

    2019-04-03 17:54

  • 4***@qq.com (作者)

    回复 赵虎威:两个index.html 都需要放进去吗?

    2019-04-03 18:01

  • 赵虎威

    回复 4***@qq.com:打日志,看看进入后退方法没

    2019-04-03 18:34

4***@qq.com

4***@qq.com (作者) - 老男人

<script type="text/javascript">

    document.addEventListener('plusready', function(){  
        //console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"  
        var plusReady = function (callback) {    
        if (window.plus) {    
            callback();    
        } else {    
            document.addEventListener('plusready', callback);    
        }    
    };    

    plusReady(function () {    
        var firstBack = 0;    
        var handleBack = function () {    
            var currentWebview = plus.webview.currentWebview();    
            var topWebview = plus.webview.getTopWebview();    
            var now = Date.now || function () {    
                return new Date().getTime();    
            };    

            currentWebview.canBack(function (evt) {    
                /**    
                 * 有可后退的历史记录,则后退。    
                 * 否则,关闭当前窗口。    
                 * 如果当前窗口是入口页,那么执行退出的逻辑。    
                 */    
                if (currentWebview.id === plus.runtime.appid) {    
                    if (!firstBack) {    
                        firstBack = now();    
                        plus.nativeUI.toast('再按一次退出应用');    

                        setTimeout(function () {    
                            firstBack = 0;    
                        }, 2000);    
                    } else if (now() - firstBack < 2000) {    
                        plus.runtime.quit();    
                    }    
                } else {    
                    if (evt.canBack) {    
                        history.back();    
                    } else {    
                        currentWebview.close('auto');    
                    }    
                }    
            });    
        };    

        plus.key.addEventListener('backbutton', handleBack);    
    });       

    });  

</script>  

</head>

  • 东家之子

    这方法还能用吗?按这个方法添加了,但是点手机键的返回还是直接退出APP了。

    2021-12-19 16:08

该问题目前已经被锁定, 无法添加新回复