帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
92
帖子
2
勋章
2万+
Y币

[App引擎] 没有监听窗口关闭事件!

[复制链接]
发表于 2018-10-31 20:04:22
监听窗口关闭事件应用场景:
1、页面关闭时需要往上一页面传值,在上一页面使用viewappear无法实现
2、统计模块baiduMTJ、talkingData 自定义页面统计结束都要调用onPageEnd,没有监听窗口关闭事件,都不知道在哪里添加onPageEnd

官方api说明提到:viewdisappear 若是 Window 被关闭,此事件不会再回调。android下,关闭窗口时viewdisappear是不执行的,这个跟官方说明一致,但我这边测试发现,ios下,手势右滑,或调用api.closeWin()关闭页面时,viewdisappear里面的回调都会执行。

建议官方添加一个跨平台统一的监听窗口关闭事件的api,以解决类似的开发需求.


19
帖子
3
勋章
1万+
Y币
顶一个
42
帖子
4
勋章
1万+
Y币
你返回窗口写一个函数呗  在函数增加关闭页面的代码的同时自己发送一个值 或者储存一个值
92
帖子
2
勋章
2万+
Y币
Mr.ZhouHeng 发表于 2018-11-1 10:13
你返回窗口写一个函数呗  在函数增加关闭页面的代码的同时自己发送一个值 或者储存一个值 ...

没有监听窗口关闭事件,怎么调用这个函数?
42
帖子
4
勋章
1万+
Y币
本帖最后由 Mr.ZhouHeng 于 2018-11-1 10:57 编辑
翼狐网 发表于 2018-11-1 10:49
没有监听窗口关闭事件,怎么调用这个函数?

关闭页面是要

  <div class="left" tapmode="active"></div>

function fnClose(){
     api.closeWin();        $api.setStorage('name', 11);
     api.execScript({
            name: 'winName',
            frameName: 'frmName',
            script: 'funcGoto();'
        });
}

92
帖子
2
勋章
2万+
Y币

你是设定用户点击页面返回按钮,在按钮里面调函数,这当然没问题了!
那android按手机返回键、ios手势右滑关闭窗口呢?

我提的是监听窗口关闭事件,是监听,能监听到,那我在回调里面就能执行自己的业务逻辑代码啦!
42
帖子
4
勋章
1万+
Y币
本帖最后由 Mr.ZhouHeng 于 2018-11-1 14:18 编辑

swiperight
Window 或者 Frame 的页面全局向右轻扫事件,字符串类型
callback(ret, err)
不能为空
示例代码api.addEventListener({    name:'swiperight'}, function(ret, err){           alert('向右轻扫');});

在IOS设备上可以通过滑动来关闭win,在安卓默认是不可以。细看下文档其实也很的简单,监听事件里面的swiperight:
如果一个窗口是先打开win再嵌套frame的打开的方法如下
apiready = function(){
        api.addEventListener({
            name:'swiperight'
        },function(ret,err){
            api.closeWin({
                    name: 'win窗口name'
            });
        })
};

如果是直接用win打开的窗口
apiready = function(){
        api.addEventListener({
            name:'swiperight'
        },function(ret,err){
            api.closeWin({});
        })
};
92
帖子
2
勋章
2万+
Y币
Mr.ZhouHeng 发表于 2018-11-1 14:17
swiperight
Window 或者 Frame 的页面全局向右轻扫事件,字符串类型callback(ret, err)不能为空示例代码api ...

问题不是这样解决的,为了实现监听页面关闭,要考虑同时用到swiperight,keyback,关闭按钮执行的函数等各种关闭页面的操作,就算能解决问题,你不觉得这种方式很不方便,代码显得很臃肿吗?

官方能出个监听页面关闭的api,有回调,就是最直接方便的解决方法
42
帖子
4
勋章
1万+
Y币
翼狐网 发表于 2018-11-1 15:20
问题不是这样解决的,为了实现监听页面关闭,要考虑同时用到swiperight,keyback,关闭按钮执行的函数等各 ...

那就把这个提议放到建议区  至于加上去能不能采纳看官方怎么决定
20
帖子
1
勋章
7573
Y币
统一写一个函数,专门处理窗口关闭。你在哪里关闭就哪里调这个函数,在关闭之前调。android监听back键,回调中关闭窗口,关闭前调这函数执行你的逻辑。窗口关闭后所有东西销毁,没有执行任何操作的机会,所以要在关闭前操作,这和原生的机制一致。
12下一页
您需要登录后才可以回帖 登录

本版积分规则