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

[插件开发] 关于多个frame 安卓返回键返回的问题

[复制链接]
发表于 2016-12-21 21:31:22
我显示在一个openWin里面   不断打开frame.    win->frame1->frame2   但是我在frame2的时候点击安卓的返回键会直接关闭win. 返回键的监听又只能在win上有效,我要如何做到在打开多个frame后点击安卓的返回键只是关闭当前frame返回上一个frame呢。求大神提供思路。。。
14
帖子
3
勋章
2万+
Y币
思路,在win中监听返回键,然后在frame中保存frame的名字,全部存到缓存中。当触发返回键的时候循环这个数组,关闭最后一个,然后把这个缓存的数组重写,去掉关闭的frame的名字。
13
帖子
0
勋章
44
Y币
多谢解答
14
帖子
3
勋章
2万+
Y币
思路2,在win中监听返回键,并在win中定义一个数组 var framename=[];,然后win中定义一个方法,用于接收framename的消息事件,并把接收到得name写入framename中。
打开frame的时候,给win发送一个消息,告诉win打开得frame得名字。
这样打开3个frame的时候framename=['frame1','frame2','frame3'];
然后返回一次,关闭一下最后一个frame,同时framename去掉最后一个frame的名字。
13
帖子
0
勋章
44
Y币
小明哥哥 发表于 2016-12-21 21:51
思路2,在win中监听返回键,并在win中定义一个数组 var framename=[];,然后win中定义一个方法,用于接收fr ...

我现在就是这么做的   虽然麻烦点  但是这样比较灵活   多谢大神
66
帖子
2
勋章
273
Y币
小明哥哥 发表于 2016-12-21 21:51
思路2,在win中监听返回键,并在win中定义一个数组 var framename=[];,然后win中定义一个方法,用于接收fr ...

  api.openFrameGroup({
            name: 'group',
               bounces : false,
            scrollEnabled: false,
            rect: {
                x: 0,
                y: $api.dom('header').offsetHeight,
                w: api.winWidth,
                h: $api.dom('#main').offsetHeight
            },
            index: 0,
            frames: [
                {  name: 'frame1',
                    url: 'http://re.m**.**'
                                },
                {  name: 'frame2',
                    url: 'http://m**.**'
                                },
                {  name: 'frame3',
                    url: 'http://m**.**'
                               },
                {   name: 'frame4',
                    url: 'https://union-click**.**/jdc?d=INrg7H'
                                }
            ]
        }, function (ret, err) {
         var index = ret.index;
           var name = ret.name;
           if (index == 0) {
          $api.setStorage('MyfirstStart', true);
            }

        });
        
   //调用下面的返回上一页的函数
                api.addEventListener({
                           name: 'keyback'
                        }, function(ret, err){
                           var js = 'api.historyBack(function(ret, err){if(ret.status){}else{api.closeWidget();}});';
                           api.execScript({
                                           frameName:'frame1',
                                             script:js
                                                      });
                        });
               
                }我这样写的,返回键对frame1有效,点到frame2frame3 frame4,按返回键直接提示是否退出程序
14
帖子
3
勋章
2万+
Y币
设置一个时间间隔应该会好用一点
14
帖子
3
勋章
2万+
Y币
我说的意思就是 你设置一个变量 var 变量=0 监听点击事件 收到触发的时候  变量=1的时候关闭应用  然后设置一个延时 例如1秒 1秒后变量=0 1秒以内变量++  当变量=0的时候 提示再一次退出
14
帖子
3
勋章
2万+
Y币
能明白了吗?
3
帖子
1
勋章
408
Y币

感谢小明哥哥的解答,为你点赞!
12下一页
您需要登录后才可以回帖 登录

本版积分规则