wap2app原生下拉pullToRefresh怎么更新list的dom而不是刷新网页

文档:http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/12749

文档说wap2app框架提供了原生的下拉刷新pullToRefresh
但是下拉刷新是刷新网页的,我只想更新dom,怎么实现呢?
文档中只说了一句

如果开发者想要下拉刷新用于更新list的dom而不是刷新网页,需要在app.js中进行强化编程。

你倒是说说怎么个强化法呀???

app.js的教程中没有说明,翻了官方发的所有wap2app文档都木有看见相关说明。
到底是我看得不认真还是没有写出这个方法?

回答

app.js中可以注册页面,比如list页面,然后在该页面的onShow函数中通过5+ API自定义下拉刷新功能。

5+下拉刷新参考:http://www.html5plus.org

参考 hellowap2app 示例工程中,自定义下拉刷新在 app.js 中的具体实现。

你是需要直接更新dom而不是刷新页面,也就是需要自定义下拉刷新逻辑,那么就不能通过配置pullToRefresh 节点来处理,通过节点配置就会走框架的下拉刷新逻辑,

自定义的话,首先删除sitemap中的配置,然后在首页如下:

Page('__W2A__www.baidu.com', { //首页扩展配置  
    onShow: function() {  
        console.log('show main page');   
       var launch = plus.webview.getLaunchWebview();  
       launch.setPullToRefresh({  
            support: true,  
            style: 'circle',  
            height: '50px',  
            range: '200px'  
    }, function() {  
        console.log('pullrefresh****'); // 自定义下拉刷新逻辑  
        launch.endPullToRefresh();   //需调用结束Webview窗口的下拉刷新  
    })  
    },  
    onClose: function() {  

    }  
});

没搞过w2a项目,但是既然是在webview里面打开的网页,那方法应该跟APP中打开网页差不多,试试用evalJS方法去调用web的方法刷新list,而不是直接刷新整个web

1小时过去了

首页之外的页面自定义下拉刷新,但是首页不能自定义下拉刷新

代码:

Page('__W2A__www.baidu.com', { //首页扩展配置  
    onShow: function() {  
        console.log('show main page');   
        plus.webview.getLaunchWebview().setPullToRefresh({}, function(){  
            console.log('main page reload');  
        });  
    },  
    onClose: function() {  

    }  
});

下拉之后的输出:

正在建立手机连接...  
正在同步手机端程序文件...  
iOS设备可使用console.log()输出内容到控制台,但是可能只能输出plusready之后的调试内容  
请手动重启手机上的 HBuilder 调试基座App...  
[LOG] : hide  
wap2app[3.6.1]开始注入  
[LOG] : [W2A]:init  
[LOG] : show main page

现象是直接刷新页面。没有执行console.log('main page reload');

支持

你好想问一下这个怎么关闭的这个下拉图标,在数据回来之后

您好,下拉刷新网页可否不需要配置url参数添加代码默认开启全局下拉刷新网页?很需要这个希望大佬可以探索一下

以上是wap2app原生下拉pullToRefresh怎么更新list的dom而不是刷新网页的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>