起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2965|回复: 9

[结贴] 点两下退出键,退出app,报错

[复制链接]

28

主题

74

帖子

194

积分

初级会员

Rank: 2

积分
194
QQ
发表于 2017-6-5 15:03:02 | 显示全部楼层 |阅读模式
打包以后,在手机上运行app,点击退出按钮报错object is not a function
//添加监听事件双击返回键退出应用
        Model.prototype.modelLoad = function(conditionFn){
                        var exitDtd = $.Deferred();
                        if(this.attached === true){
                                exitDtd.reject();
                        }else{
                                this.attached = true;
                                document.addEventListener("deviceready", function() {
                                        var exitAppTicker = 0;
                                        var listener = function(){
                                                if(conditionFn()){
                                                        //第一次点击返回键提示,第二次退出
                                                        if(exitAppTicker === 0){
                                                                exitAppTicker++;
                                                                var msg = $('<div style="display: none;z-index:99999;position: fixed;width: 100%;bottom: 25px;text-align: center;"><span style="font-size:18px;border-radius: 3px;padding: 7px;background-color: #383838;color: #F0F0F0;">再按一次退出应用</span></div>').appendTo('body');
                                                                msg.fadeIn(400).delay(2000).fadeOut(400,function(){
                                                                        exitAppTicker = 0;
                                                                        msg.remove();
                                                                });
                                                        }else if(exitAppTicker == 1){
                                                                exitDtd.resolve();
                                                                navigator.app.exitApp();
                                                        }       
                                                }else{
                                                        if($('html').hasClass("x-focus-in")){
                                                                $('html').removeClass("x-focus-in");
                                                        }else{
                                                                history.back();
                                                                //justep.Shell.closePage();
                                                        }
                                                }
                                        };
                                        document.addEventListener('backbutton', listener, false);
                                        $(window).on('beforeunload', function(){
                                                document.removeEventListener('backbutton', listener, false);
                                    });
                        }, false);
                        }
                        return exitDtd.promise();
                };

为啥?求解。。

发表于 2017-6-5 15:20:35 | 显示全部楼层
不用自己接管
  document.addEventListener('backbutton', listener, false);
这个系统已经实现了的!

你只要接管
就可以了
attachDoubleClickExitApp
http://docs.wex5.com/wex5-app-question-list-2003/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

28

主题

74

帖子

194

积分

初级会员

Rank: 2

积分
194
QQ
 楼主| 发表于 2017-6-5 16:21:21 | 显示全部楼层
改完后还是这样,是不是打包的时候要引用什么东西啊?
回复 支持 反对

使用道具 举报

发表于 2017-6-5 16:41:35 | 显示全部楼层
zly 发表于 2017-6-5 16:21
改完后还是这样,是不是打包的时候要引用什么东西啊?

不用啊!
你只需要接管attachDoubleClickExitApp  
在里面判断 哪个页面要双击退出?  就判断是不是当前页面,然后
return true 就表示接管双击退出

你可以参考仿淘宝和仿外卖的!

只要知道当前页面是什么??return true  即可!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

28

主题

74

帖子

194

积分

初级会员

Rank: 2

积分
194
QQ
 楼主| 发表于 2017-6-6 07:40:18 | 显示全部楼层
哈哈找到了
     if(conditionFn()){
          //第一次点击返回键提示,第二次退出
的conditionFn()改成conditionFn就ok啦哈哈
示例里的代码有错,这个错用apploader测试时没有报出来,但打包部署后一运行app就会报“object is not a function”
回复 支持 反对

使用道具 举报

28

主题

74

帖子

194

积分

初级会员

Rank: 2

积分
194
QQ
 楼主| 发表于 2017-6-7 11:11:30 | 显示全部楼层
liangyongfei 发表于 2017-6-5 16:41
不用啊!
你只需要接管attachDoubleClickExitApp  
在里面判断 哪个页面要双击退出?  就判断是不是当前 ...


哈哈找到了
     if(conditionFn()){
          //第一次点击返回键提示,第二次退出
的conditionFn()改成conditionFn就ok啦哈哈
示例里的代码有错,这个错用apploader测试时没有报出来,但打包部署后一运行app就会报“object is not a function”
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
发表于 2017-8-21 16:48:39 | 显示全部楼层
zly 发表于 2017-6-7 11:11
哈哈找到了
     if(conditionFn()){
          //第一次点击返回键提示,第二次退出

请问下楼下的这个可以的吗?点击安卓物理按键的时候会提示吗?
回复 支持 反对

使用道具 举报

28

主题

74

帖子

194

积分

初级会员

Rank: 2

积分
194
QQ
 楼主| 发表于 2017-8-21 17:01:13 | 显示全部楼层
keyours 发表于 2017-8-21 16:48
请问下楼下的这个可以的吗?点击安卓物理按键的时候会提示吗?

你可以试一下,时间太久我有点忘了,我的手机实验成功了,不知道你的会咋样。
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
发表于 2017-8-21 17:08:12 | 显示全部楼层
zly 发表于 2017-8-21 17:01
你可以试一下,时间太久我有点忘了,我的手机实验成功了,不知道你的会咋样。 ...

好的,上面那段代码之需要 写在入口的页面是吧?不需要每个页面都写吧
回复 支持 反对

使用道具 举报

28

主题

74

帖子

194

积分

初级会员

Rank: 2

积分
194
QQ
 楼主| 发表于 2017-8-22 08:39:25 | 显示全部楼层
keyours 发表于 2017-8-21 17:08
好的,上面那段代码之需要 写在入口的页面是吧?不需要每个页面都写吧

嗯,写在index里的modelLoad里就行,我写一直是在modelLoad里写的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-8 07:01 , Processed in 0.057842 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表