接触dcloud已经有一段时间了,产生了深厚的兴趣,并感到开发者的伟大。
昨日在作> 首页下拉刷新时 发现了一些有趣的问题,如下
在app.js里注册了页面,并且在页面的 onShow 事件里作了添加了以下代码
Page('__W2A__192.168.6.186', { //首页扩展配置
onShow: function() {
//var ws = plus.webview.getWebviewById("__W2A__192.168.6.186")
//var ws = plus.webview.getLaunchWebview();
var ws = plus.webview.getWebviewById(plus.runtime.appid);
ws.setPullToRefresh({
support: true,
style: 'circle'
}, function() {
ws.evalJS('doRrefresh()'); // 自定义下拉刷新逻辑
ws.endPullToRefresh();
})
}
}
经测试发现以下问题
1,plus.webview.getWebviewById("W2A192.168.6.186")
ws为null。文档上说首页的webviewid是可以通过这样的方式获取的。
2, plus.webview.getLaunchWebview();
这种方式可以正常下拉刷新,但是发现,当我点击其它界面,来回切换几次后,有很大几率下拉刷新时,doRrefresh()执行了多次,且界面切换的次数越多,执行的次数也就越多。
3,plus.webview.getWebviewById(plus.runtime.appid);
这种方式目前来没有了doRrefresh()多次执行的问题
但不管是方式2还是方式3,目前都有一个统一的问题,就是当在不同界面间来回切换几次后,有不小的机率下拉刷新失效,就是点击没有任何反应,经调试 onShow事件并没有被调用,不知道是何原因。
1 个回复
hgdc
我是用这种方式plus.webview.getLaunchWebview(); ,偶尔会执行多次,不知为何