1***@qq.com
1***@qq.com
  • 发布:2019-04-08 17:03
  • 更新:2019-04-30 12:05
  • 阅读:1317

onPlusReady 重新openwindow后不触发,指定了plusrequire: 'later',createNew: true

分类:HTML5+

开发一个安卓电视盒子的应用,需要响应遥控按键.
index.html为隐藏主页面,负责响应事件调度页面.
list.html中为列表页面 在 plusReady中添加 document.addEventListener("keydown" 去处理遥控码
play.html为播放页面.
页面都是通过 openWindow 指定了 style: {plusrequire: 'later'}, 和 createNew: true,目的是希望PlusReady一直会调用

整个流程:
(1)index.html ---> list.html ------>play.html(遥控响应正常)
(2)play.html (beforeback) --->index.html--->list.html (遥控响应失败)
/////////////////////////////////////////////////////////////////////////////////
//list.html相关的

初始是通过 mui.openWindow({url: "html/list.html",
id: id,
style: {
plusrequire: 'later'
},
extras: data,
show: {
autoShow: true,
duration: durationValue,
aniShow: aniShowType
},
createNew: true});
打开list.html,并且在plusReady添加 document.onkeydown
mui.plusReady(function(){
onPlusReady();
});
OnPlusReady()
{
document.addEventListener("keydown", function(e) {
handleKeydown(e);//遥按钮响应
}, false);
}
使用遥控按钮 选中某个视频后,通过调用
mui.fire(self.opener(), 'play', {itemID:id});//通知打开play.html
self.close();//关闭自己
////////////////////////////////////////////////////////////////////////////////////////
//从play.html通过返回键的处理返回到list.html
mui.init({
beforeback:function()
{
mui.fire(plus.webview.currentWebview().opener(),'playback',
{
domain: domain,
type:
type,
fileID :id,
folderID:
folderID,
buckets:__buckets
});
return true;
}
});

//////////////////////////////////////////////////////

在index.html中,
window.addEventListener('play', function(e) {
mui.openWindow({url: "html/play.html",
id: id,
style: {
plusrequire: 'later'
},
extras: data,
show: {
autoShow: true,
duration: durationValue,
aniShow: aniShowType
},
createNew: true})

})

window.addEventListener('playback', function(e) {
//重新创建 list.html
mui.openWindow({url: "html/list.html",
id: id,
style: {
plusrequire: 'later'
},
extras: data,
show: {
autoShow: true,
duration: durationValue,
aniShow: aniShowType
},
createNew: true
}
);
}

但是通过play.html在beforeback发送 playback消息通知index.html创建的 list.html 遥控按键完全失灵,只能响应 返回键.
返回首页后重新创建list.html页面后遥控又正常了.

2019-04-08 17:03 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者) - jackwei86

手动置顶

小明子

小明子

如果你目标页面已经打开了,你再打开的话其实只是把隐藏的显示出来,plusready肯定不会触发的
解决办法:
1.自己重写openwindow方法

  1. 用mui.fire自己实现触发
  • 1***@qq.com (作者)

    openwindow我指定了createNew: true ,另外 openwindow已经是plus提供的API了,怎么重写?

    2019-06-25 10:13

  • 小明子

    回复 1***@qq.com: 不是重写plus的,是重写mui的。打开过的页面如果想二次触发的话就需要监听一个事件。

    2019-07-23 18:22

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