12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /**
- * mui.init pulldownRefresh
- * @param {type} $
- * @returns {undefined}
- */
- (function($) {
- $.addInit({
- name: 'pullrefresh',
- index: 1000,
- handle: function() {
- var options = $.options;
- var pullRefreshOptions = options.pullRefresh || {};
- var hasPulldown = pullRefreshOptions.down && pullRefreshOptions.down.hasOwnProperty('callback');
- var hasPullup = pullRefreshOptions.up && pullRefreshOptions.up.hasOwnProperty('callback');
- if(hasPulldown || hasPullup) {
- var container = pullRefreshOptions.container;
- if(container) {
- var $container = $(container);
- if($container.length === 1) {
- if($.os.plus) { //5+环境
- if(hasPulldown && pullRefreshOptions.down.style == "circle") { //原生转圈
- $.plusReady(function() {
- //这里改写$.fn.pullRefresh
- $.fn.pullRefresh = $.fn.pullRefresh_native;
- $container.pullRefresh(pullRefreshOptions);
- });
- } else if($.os.android) { //非原生转圈,但是Android环境
- $.plusReady(function() {
- //这里改写$.fn.pullRefresh
- $.fn.pullRefresh = $.fn.pullRefresh_native
- var webview = plus.webview.currentWebview();
- if(window.__NWin_Enable__ === false) { //不支持多webview
- $container.pullRefresh(pullRefreshOptions);
- } else {
- if(hasPullup) {
- //当前页面初始化pullup
- var upOptions = {};
- upOptions.up = pullRefreshOptions.up;
- upOptions.webviewId = webview.id || webview.getURL();
- $container.pullRefresh(upOptions);
- }
- if(hasPulldown) {
- var parent = webview.parent();
- var id = webview.id || webview.getURL();
- if(parent) {
- if(!hasPullup) { //如果没有上拉加载,需要手动初始化一个默认的pullRefresh,以便当前页面容器可以调用endPulldownToRefresh等方法
- $container.pullRefresh({
- webviewId: id
- });
- }
- var downOptions = {
- webviewId: id//子页面id
- };
- downOptions.down = $.extend({}, pullRefreshOptions.down);
- downOptions.down.callback = '_CALLBACK';
- //改写父页面的$.fn.pullRefresh
- parent.evalJS("mui.fn.pullRefresh=mui.fn.pullRefresh_native");
- //父页面初始化pulldown
- parent.evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('" + JSON.stringify(downOptions) + "')");
- }
- }
- }
- });
- } else { //非原生转圈,iOS环境
- $container.pullRefresh(pullRefreshOptions);
- }
- } else {
- $container.pullRefresh(pullRefreshOptions);
- }
- }
- }
- }
- }
- });
- })(mui);
|