/** * 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);