当前界面只有一个webview时,plus.key的注册时很清晰的。
但当前若有多个webview,或者有父子webview,则需要理清各webview接收key响应的逻辑。
-
隐藏的webview是不会接受到按键事件通知的。
-
Webview嵌套后返回按键事件是按照先子后父的顺序进行分发处理。
顺序分发到某个子Webview对象监听了backbutton事件:plus.key.addEventListener('backbutton',backListener,false);
则终止返回按键事件的分发处理,如果Webview处于隐藏状态则不处理返回事件。
即子webview接收到后,父就不再接收了。
如果业务逻辑操作隐藏了子Webview,事件会正常传递给父Webview。
一般建议统一在父webview注册plus.key的事件,不要在子webview注册。
如果是使用通用js文件默认添加了此事件的监听,则可以通过plus.key.removeEventListener方法取消监听,示例代码如下:
<script type="text/javascript">
function backListener(){
console.log('backbutton');
}
// 开始监听backbutton事件
function startBack(){
plus.key.addEventListener('backbutton',backListener,false);
}
// 取消监听backbutton事件
function stopBack(){
plus.key.removeEventListener('backbutton',backListener);
}
</script>
4 个评论
要回复文章请先登录或注册
8***@qq.com
多串君
大漠野狼
大漠野狼