LFZ
LFZ
  • 发布:2017-02-09 11:41
  • 更新:2017-02-09 12:56
  • 阅读:1863

【报Bug】backbutton事件不能触发

分类:HTML5+

详细问题描述
[内容]

重现步骤
[步骤]
只要引用了vue.js都会导致// Android处理返回键

  plus.key.addEventListener('backbutton',function(){  
    alert("返回")  
  },false);

监听不到,事件不会触发,
自从上两次更新就有了,以前没有发生过,代码也没改过。
[结果]
[期望]

运行环境
[系统版本]
[浏览器版本]
[IDE版本]
HBuilder

7.6.5.201612301621

[mui版本]
3.4.1
附件
[代码片段]
[安装包]

联系方式
[QQ]
[电话]

2017-02-09 11:41 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

经测试,引入vue.js不会影响plus相关API的调用。

document.addEventListener('plusready', function() {  
    plus.key.addEventListener('backbutton', function() {  
        console.log('backbutton');  
    });  
});

请提供存在问题的HBuilder的版本信息,并提供plus.runtime.innerVersion的信息。

  • LFZ (作者)

    我做的是vue单页面结构,如果url发生变化, 之前的监听的h5+的 addEventListener 广播事件全部失效,需要重新监听。

    2017-02-09 13:03

  • Trust

    回复 LFZ:如果发生页面整体刷新,那么是一定需要重新注册事件的。

    2017-02-09 14:15

  • LFZ (作者)

    用vue的路由跳转是不会整个刷新页面的,自从上两次更新了HBuilder就出现了这个问题

    2017-02-09 14:40

  • LFZ (作者)

    本地打包,用旧的sdk打包没有这个问题

    2017-02-09 14:41

  • Trust

    回复 LFZ:提供一个可以重现问题的工程。

    2017-02-09 15:26

LFZ

LFZ (作者)

plus.runtime.innerVersion:1.9.9.28326
HBuilder版本7.6.5.201612301621

我是用了vue+vue路由的单页面结构。

//配置路由  
var router = new VueRouter()  
configRouter(router)  
router.start(App, '#app');  

mui.init({  
  gestureConfig:{  
    tap:true,//单击屏幕  
    doubletap:false,//双击屏幕  
    longtap:false,//长按屏幕  
    hold:false,// 按住屏幕  
    release:false,//离开屏幕  
    swipe:true,//swipeleft 、swiperight 、swipeup 、swipedown 共用swipe开关  
    drag:false,//dragstart、drag、dragend 共用drag开关  
  }  
});  
mui.plusReady(function(){  
  console.log(plus.runtime.innerVersion);  
  var wv=plus.webview.currentWebview();  
  wv.setStyle({'popGesture':'none'});  
  plus.webview.currentWebview().setStyle({  
            softinputMode: "adjustResize"//ios输入模式  
    }, false);  
  plus.webview.currentWebview().appendJsFile('_www/fix.js')  
  // Android处理返回键  
  plus.key.addEventListener('backbutton',function(){  
    alert("返回")  
  },false);  
})

用延时返回键就有反应

  setTimeout(function(){  
    try{  
      plus.key.addEventListener('backbutton', function() {  
        plus.nativeUI.toast("触发返回按钮");  
      }, false);  
    }catch(e){  

    }  
  },2000);
  • Trust

    修改成监听plusready事件,不用mui封装的plusReady方法。

    2017-02-09 12:57

  • LFZ (作者)

    我做的是vue单页面结构,如果url发生变化, 之前的监听的h5+的 addEventListener 广播事件全部失效,需要重新监听。

    2017-02-09 13:04

  • LFZ (作者)

    不知道是什么原因,之前有个项目是本地打包的更新h5sdk后也是这样,后来回滚旧的sdk了

    2017-02-09 13:05

  • LFZ (作者)

    回复 Trust:请问这个bug什么时候能修复

    2017-02-09 13:09

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