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

QQ登录

只需一步,快速开始

查看: 2189|回复: 1

[处理中3] 手机app点击物理返回键,不能返回上一个界面,怎么处理?

[复制链接]

5

主题

19

帖子

45

积分

新手上路

Rank: 1

积分
45
QQ
发表于 2018-4-23 16:06:06 | 显示全部楼层 |阅读模式
手机app,用户点击物理返回键时,点击两下退出,不能正常的返回上一个界面,请问这个问题怎么解决呢?淘宝案例的例子看不懂,

CommonUtils.attachDoubleClickExitApp(function() {
                       
                        var isHomePage = shellImpl.pagesComp.contents[0].innerContainer.getInnerModel().comp('contents2').getActiveIndex() == 0;
                        if (shellImpl.pagesComp.getActiveIndex() === 0 && isHomePage) {
                                return true;
                        }
                        return false;
                });

这个原理也不太明白,怎么办?
Android手机中回退键的理解

原因:只有Android手机会提供回退键,关于回退键的操作,平台已经做好了封装!当然也可以自己接管回退的事件,我再这里简单介绍下逻辑调用的过程,方便大家参考!
解决方案:
比如,外卖案例,仿淘宝案例都接管了attachDoubleClickExitApp 事件,return true 就表示接管双击退出!return false 表示路由回退!参考案例,可以自己接管判断逻辑!
这个方法在UI2/system/components/justep/common/utils.js中,你可以看下源码:
document.addEventListener(‘backbutton’, listener, false);实际上就是接管了返回键要执行的事件,
history.back(); 是路由的回退,有些用户不希望路由回退,而是关闭页面,就可以把这行代码改成justep.Shell.closePage();
navigator.app.exitApp(); 是app的退出!如果不想真正的关闭APP,就可以把这行代码去掉!
记得执行合并资源的操作:\tools\dist\dist.bat

理解:
其实默认情况开发的单页功能,定义shellImp 打开的单页应用,默认就是在主页双击退出的!
源码:/UI2/system/lib/portal/shellImpl.js
判断执行的方法:initDoubleClickExitApp
就是指默认 主页接管了 双击退出 的事件
发表于 2018-4-28 16:57:42 | 显示全部楼层
就是接管attachDoubleClickExitApp  return true 就表示双击退出 return false 就表示路由回退!
你的页面是单页应用,并且 路由是生效的吧,这样才可以

如果不是这样做的就不可以
http://docs.wex5.com/shellimpl/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:10 , Processed in 0.090079 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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