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

QQ登录

只需一步,快速开始

查看: 4248|回复: 11

[处理中3] 安卓监听返回键的问题

[复制链接]

9

主题

22

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
发表于 2018-5-3 15:13:24 | 显示全部楼层 |阅读模式
因为用户习惯使用安卓自带的返回键,这样会引起一些不必要的问题,所以我想把安卓自带的返回键监听,功能重写,写成和导航栏一样的内容;
写法如下:document.addEventListener('backbutton', backBtnClick, true);
                function backBtnClick(){
                        alert("xxxxxx")
                }

我希望的效果是,点击返回键后,只提示alert语句,然后不进行任何动作。实际效果是,先执行alert,然后关闭了当前页面;
想请问一下,如何才能够执行完alert后,不再进行任何动作
发表于 2018-5-3 17:48:41 | 显示全部楼层
http://docs.wex5.com/wex5-app-question-list-2003/

建议接管 attachDoubleClickExitApp 实现
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

22

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2018-5-3 18:45:15 | 显示全部楼层
用justep.Shell.closePage();关闭页面时没问题,按返回键时,就报错:Maxinum call stack size exceeded
为了解决这个问题,就想监听返回键,写成和导航栏上一样的,但是使用document.addEventListener()后,依然会报错:document.addEventListener
回复 支持 反对

使用道具 举报

发表于 2018-5-4 16:55:07 | 显示全部楼层
lucas_xxx 发表于 2018-5-3 18:45
用justep.Shell.closePage();关闭页面时没问题,按返回键时,就报错:Maxinum call stack size exceeded
...

报错 Maxinum call stack size exceeded  
很可能是代码进入死循环了

你先试试在chrome PC 浏览器上测试一下
浏览器的回退键会不会导致报错的??
  回退实际上就是执行的 history.back()

平台案例没这种问题吧??
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

22

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2018-5-8 11:44:14 | 显示全部楼层
导航框上按钮方法为:
Model.prototype.backBtnClick = function(event) {
        justep.Shell.closePage();
};
点击正常返回,不报错;
但是按安卓自带的返回键时,就报 Maxinum call stack size exceeded  
所以想接管返回:
document.addEventListener('backbutton', backBtnClick, false);
function adbackBtnClick() {
                justep.Shell.closePage();
}
,这样点安卓自带返回键时,依然报: Maxinum call stack size exceeded  
回复 支持 反对

使用道具 举报

发表于 2018-5-8 11:50:21 | 显示全部楼层
lucas_xxx 发表于 2018-5-8 11:44
导航框上按钮方法为:
Model.prototype.backBtnClick = function(event) {
        justep.Shell.closePage();

物理返回键代码实现看下
http://docs.wex5.com/wex5-app-question-list-2003/

如果你在按钮点击事件 中执行  history.back()  会不会  正常返回呢?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

22

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2018-5-8 16:57:27 | 显示全部楼层
导航栏中写history.back()不报错,
document.addEventListener中写什么都会报错: Maxinum call stack size exceeded  
回复 支持 反对

使用道具 举报

发表于 2018-5-8 17:00:18 | 显示全部楼层
lucas_xxx 发表于 2018-5-8 16:57
导航栏中写history.back()不报错,
document.addEventListener中写什么都会报错: Maxinum call stack size  ...

平台 默认 就 已经接管了 document.addEventListener
你不用重新接管的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

9

主题

22

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2018-5-8 18:22:43 | 显示全部楼层
可是直接用安卓自带返回键的时候,报错,普通按钮中写:justep.Shell.closePage(); 或 history.back(),都没问题,页面js文件中也不存在死循环
回复 支持 反对

使用道具 举报

发表于 2018-5-9 09:35:10 | 显示全部楼层
lucas_xxx 发表于 2018-5-8 18:22
可是直接用安卓自带返回键的时候,报错,普通按钮中写:justep.Shell.closePage(); 或 history.back(),都 ...

你先打包仿途牛,仿淘宝试试!,平台案例是否正常??
你的页面开发 吗,也是符合单页应用开发规范的吗?
http://docs.wex5.com/shellimpl/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 04:44 , Processed in 0.144177 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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