唠叨叨唠
唠叨叨唠
  • 发布:2017-11-16 14:20
  • 更新:2017-11-17 11:56
  • 阅读:2002

按退出键切换到后台如何实现??

分类:HTML5+

安卓手机按退出键(物理键)会退出APP在点击APP就会重新登录。
现在需要像微信,QQ那样按退出键APP切换到后台,就跟按home键一样。

2017-11-16 14:20 负责人:无 分享
已邀请:
回梦無痕

回梦無痕 - 暂停服务

安卓可以
监听返回键,运行下方代码。。。。

    var main = plus.android.runtimeMainActivity();  
    main.moveTaskToBack(false);

不知道还能不能用,我只是复制,毕竟是官方2015年时候写的方法。
遇到问题要多搜索一下。搜索可以解决大部分问题。

  • 唠叨叨唠 (作者)

    很感谢你的回复,此方法虽然是切换到后台,但是按退出键确实退出了APP

    2017-11-16 15:06

  • 唠叨叨唠 (作者)

    需要拦截退出

    2017-11-16 15:06

  • 回梦無痕

    回复 唠叨叨唠:安卓手机按退出键??是返回键吗??如果是,就重写返回键的监听就能拦截了

    2017-11-16 16:02

  • 唠叨叨唠 (作者)

    是返回键,这里就当退出键了。mui的back? 看代码

    2017-11-16 16:48

唠叨叨唠

唠叨叨唠 (作者)

mui(function() {  
mui.back = function() {  
var main = plus.android.runtimeMainActivity();  
main.moveTaskToBack(false);   

                            }  

                        })

没有效果,一样退出APP了

  • 回梦無痕

    ...我不清楚这个代码是否有用。另外,你是怎么判断app退出了而不是在后台?

    2017-11-16 17:00

  • 唠叨叨唠 (作者)

    退出后点击APP,会进入有登录界面。就是退出了APP。

    2017-11-16 17:14

  • 唠叨叨唠 (作者)

    只要是按退出键就都进去后台,暂时不考虑其他页面

    2017-11-16 17:22

回梦無痕

回梦無痕 - 暂停服务

下面代码是安卓可以运行的,我只在小米2S上测试过,你尝试一下

document.addEventListener("plusready",function(){  
            mui.back=function(){  
                var main = plus.android.runtimeMainActivity();  
                main.moveTaskToBack(false);  
            }  
        }) 
  • 唠叨叨唠 (作者)

    感谢,经测试APP确实切换到后台,但通过返回键退出APP没有效果,测试机OPPO A57

    2017-11-17 10:19

  • 回梦無痕

    回复 唠叨叨唠:我有点混了,我给出的代码是重写返回键,点击物理返回键就切换到后台的

    2017-11-17 10:26

  • 回梦無痕

    回复 唠叨叨唠:重写返回键要在plusready事件里面写

    2017-11-17 10:35

  • 唠叨叨唠 (作者)

    回复 回梦無痕:是的,我确定是在plusready事件内

    2017-11-17 10:45

唠叨叨唠

唠叨叨唠 (作者)

if(window.plus) {  
plusReady();  
} else {  
document.addEventListener('plusready', plusReady, false);  
}  

function plusReady() {  
mui.back = function() {  
var main = plus.android.runtimeMainActivity();  
main.moveTaskToBack(true);   
//OPPO A57  
}  
}  
回梦無痕

回梦無痕 - 暂停服务

mui.back = function() {  
    alert('back');  
    var main = plus.android.runtimeMainActivity();  
    main.moveTaskToBack(true);   
}

你看alert会不会运行,如果运行了,证明这个切换到后台代码在你的机器上无效。
如果alert没有运行,就是没有重写到返回键。

  • 唠叨叨唠 (作者)

    代码在设备上是有效果的,但同时返回键也把APP退出了

    2017-11-17 11:04

  • 唠叨叨唠 (作者)

    目前都是在真机测试上发现的..

    2017-11-17 11:05

  • 回梦無痕

    回复 唠叨叨唠:那就要测试看是否有重写到返回键了,就像上方的代码,看按返回键的时候alert是否有运行。另外在最后面加一句return false;看是否有效果

    2017-11-17 11:11

  • 唠叨叨唠 (作者)

    看代码

    2017-11-17 11:28

唠叨叨唠

唠叨叨唠 (作者)

mui.back = function() {  
console.log(123)  
var main = plus.android.runtimeMainActivity();  
console.log(22)  
main.moveTaskToBack(false);   
console.log(444)  
return false;  
//按退出键控制台输出123,后面的就没输出...  
}  
--------------------------------------  
不重现mui.back,直接调用  
console.log(123)  
var main = plus.android.runtimeMainActivity();  
console.log(22)  
main.moveTaskToBack(false);   
console.log(444)  
return false;  
//控制台全部输出
  • 回梦無痕

    。。。或者换一个方法,将程序切换后台不行,那跳转到桌面咯,我看下怎么转这个代码

    2017-11-17 11:38

  • 唠叨叨唠 (作者)

    需要拦截返回键关闭APP

    2017-11-17 11:50

唠叨叨唠

唠叨叨唠 (作者)

//不重写按返回键退出APP,返回undefined  
    $.back = function() {  
        if (typeof $.options.beforeback === 'function') {  
            if ($.options.beforeback() === false) {  
                return;  
            }  
        }  
        console.log(typeof $.options.beforeback)  
        $.doAction('backs');  
    };
回梦無痕

回梦無痕 - 暂停服务

跳转桌面:

var Intent = plus.android.importClass("android.content.Intent");  
var intent = new Intent(Intent.ACTION_MAIN,null);  
intent.addCategory(Intent.CATEGORY_HOME)  
var main = plus.android.runtimeMainActivity();  
main.startActivity(intent);
  • 唠叨叨唠 (作者)

    感谢你的耐心指导,我尝试新建h5+项目内发现可以实现切换后台,可能是之前项目某个JS有冲突

    2017-11-17 12:04

回梦無痕

回梦無痕 - 暂停服务

mui.back = function() {  
    console.log(123)  
}

难道你手机上,这样也会被退出吗?

  • 唠叨叨唠 (作者)

    估计是冲突

    2017-11-17 13:32

  • 回梦無痕

    回复 唠叨叨唠:看到了你上一条回复了,如果新建的项目可用,那么就是这个项目中存在冲突地方。

    2017-11-17 13:33

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