引用
樣式表: mui.min.css
Js:mui.min.js
常用功能
獲取頁面
var webView=plus.webview.currentWebview();//獲取當前頁 var webView=plus.webview.currentWebview().opener();//獲取上一頁的頁面 var webView= plus.webview.currentWebview().parent();//獲取父級頁面 var webView =plus.webview.getWebviewById("index");//根據Id獲取頁面 var webView = plus.webview.getLaunchWebview();//獲取主頁面 var all = plus.webview.all();//獲取所有頁面 webViewObj.reload(true);//刷新頁面
自定義返回事件
返回:mui.back(),可在點擊事件里添加
Beforeback:自定義返回按鈕事件,如果要禁用返回時間添加 return false;
1 <script type="text/javascript"> 2 (function($, doc) { 3 4 mui.init({ 5 6 beforeback: function() { 7 8 var webView = plus.webview.currentWebview(); 9 10 var pWebView = webView.opener(); 11 12 $.fire(pWebView, "breck_page"); 13 14 return false; 15 16 } 17 18 }); 19 20 $.plusReady(function() {}); 21 22 }(mui, document)); 23 </script>
打開頁面/關閉頁面
打開頁面時用mui. openWindow()方法,url:打開頁面路徑,id:頁面Id、styles:頁面樣式、extras:參數(從A打開B頁面在B頁面可以取到該參數,)
1 <script type="text/javascript"> 2 3 (function($, doc) { 4 5 mui.init(); 6 7 $.plusReady(function() { 8 9 $.openWindow({ 10 11 url: "course_info.html", 12 13 id: "course_info.html", 14 15 styles:{ top:"50px"} 16 17 extras: { 18 19 courseId: courseId 20 21 }, 22 }) 23 }); 24 }(mui, document)); 25 26 </script>
關閉頁面webViewObj.close(“slide-out-bottom”,300);參數1:關閉動畫,參數2:動畫時間
接收參數
- 獲取當前頁面 var webView = plus.webview.currentWebview();
- 獲取content字符串 var content= webView.content;
- 獲取當前序號,要取int型需要進行轉換 var index= parseInt(webView.index);
預加載頁面
方式一:
通過mui.init方法中的preloadPages參數進行配置.
1 mui.init({ 2 3 preloadPages:[ 4 5 { 6 7 url:prelaod-page-url, 8 9 id:preload-page-id, 10 11 styles:{},//窗口參數 12 13 extras:{},//自定義擴展參數 14 15 subpages:[{},{}]//預加載頁面的子頁面 16 17 } 18 19 ], 20 21 preloadLimit:5//預加載窗口數量限制(一旦超出,先進先出)默認不限制 22 23 });
該種方案使用簡單、可預加載多個頁面,但不會返回預加載每個頁面的引用,若要獲得對應webview引用,還需要通過plus.webview.getWebviewById方式獲得;另外,因為mui.init是異步執行,執行完mui.init方法后立即獲得對應webview引用,可能會失敗,例如如下代碼:
mui.init({
preloadPages:[
{
url:'list.html',
id:'list'
}
]
});
var list = plus.webview.getWebviewByid('list');//這里可能返回空;
方式二:通過mui.preload方法預加載.
1 <script type="text/javascript"> 2 (function ($, doc) { 3 mui.init(); 4 $.plusReady(function () { 5 mui.preload({ 6 url: 'test_select_info.html', 7 id: page_id, 8 styles: {}, 9 extras: {}, 10 }); 11 page.show("none"); 12 }); 13 }(mui, document)); 14 </script>
自定義事件
window.addEventListener(EventName,function(){});
EventName:事件名稱
Function(){}:時間內容
B頁面調取A頁面的自定義事件
mui.fire(webViewObj, EventName);
webViewObj: 目標頁面(類型obj)
EventName:事件名稱(類型string)
異步獲取數據
1 Var url=” http://www.zfgo360.com/App/Home/Index” 2 3 mui.ajax(url, { 4 5 data: loginInfo, 6 7 dataType: 'json', //服務器返回json格式數據 8 9 type: 'post', //HTTP請求類型 10 11 timeout: 10000, //超時時間設置為10秒; 12 13 success: function(data) { 14 15 if(data.code == 0) //登錄成功將數據存入本地 16 17 { 18 19 } else { 20 } 21 22 }, 23 error: function(xhr, type, errorThrown) { 24 console.log(errorThrown); 25 } 26 });
確認事件
1 var btnArray = ['是','否' ]; 2 var pageurl=nowPage.getURL(); 3 $.confirm('您確定要結束當前練習?', '溫馨提示', btnArray, function(e) { 4 if (e.index == 0) { 5 //點擊是時觸發 6 } 7 else{ 8 //點擊否時觸發 9 } 10 })
添加子頁面
mui.init({ subpages:[{ url:your-subpage-url,//子頁面HTML地址,支持本地地址和網絡地址 id:your-subpage-id,//子頁面標志 styles:{ top:subpage-top-position,//子頁面頂部位置 bottom:subpage-bottom-position,//子頁面底部位置 width:subpage-width,//子頁面寬度,默認為100% height:subpage-height,//子頁面高度,默認為100% ...... }, extras:{}//額外擴展參數 }] });
在有些情況下不能在mui.init()里添加子頁面需要在頁面加載之后添加子頁面
Var webView= plus.webview.currentWebview();//獲取當前頁
var sub = plus.webview.create(pageId, subpages[i].id, styles, extras); //創建子頁面
webView.append(sub);給當前頁添加子頁面
上拉刷新下拉加載
添加引用
1 <script type="text/javascript" src="../../js/mui.pullToRefresh.js"></script> 2 <script type="text/javascript" src="../../js/mui.pullToRefresh.material.js"></script> 3 <script type="text/javascript"> 4 (function($, doc) { 5 mui.init(); 6 $.plusReady(function() { 7 Var pullToRefresh = mui("#pullrefresh").pullToRefresh({ 8 down: { 9 callback: function() { 10 //下拉刷新事件 11 pullToRefresh.endPullDownToRefresh();//結束下拉刷新事件 12 } 13 }, 14 up: { 15 callback: function() { 16 //上拉加載事件 17 pullToRefresh.endPullUpToRefresh();//結束上拉加載事件 18 } 19 } 20 }); 21 }); 22 }(mui, document)); 23 </script>
點擊事件
1 document.getElementById("id").addEventListener(“tap”,function(){ 2 //事件代碼 3 }); 4 //或者 5 mui('#pano-list').on('tap', '.recommend-item',function(){ 6 //事件代碼 7 });
事件觸發
使用mui.trigger()方法可以動態觸發特定DOM元素上的事件。
自動觸發按鈕的點擊事件:
1 var btn = document.getElementById("submit"); 2 3 //監聽點擊事件 4 5 btn.addEventListener("tap",function () { 6 7 console.log("tap event trigger"); 8 9 }); 10 11 //觸發submit按鈕的點擊事件 12 13 mui.trigger(btn,'tap');
使用Native.js實現打開頁面默認彈出軟鍵盤
1 var nativeWebview, imm, InputMethodManager; 2 3 var initNativeObjects = function() { 4 5 if (mui.os.android) { 6 7 var main = plus.android.runtimeMainActivity(); 8 9 var Context = plus.android.importClass("android.content.Context"); 10 11 InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager"); 12 13 imm = main.getSystemService(Context.INPUT_METHOD_SERVICE); 14 15 } else { 16 17 nativeWebview = plus.webview.currentWebview().nativeInstanceObject(); 18 19 } 20 21 }; 22 23 var showSoftInput = function() { 24 25 var nativeWebview = plus.webview.currentWebview().nativeInstanceObject(); 26 27 if (mui.os.android) { 28 29 //強制當前webview獲得焦點 30 31 plus.android.importClass(nativeWebview); 32 33 nativeWebview.requestFocus(); 34 35 imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED); 36 37 } else { 38 39 nativeWebview.plusCallMethod({ 40 41 "setKeyboardDisplayRequiresUserAction": false 42 43 }); 44 45 } 46 47 setTimeout(function() { 48 49 //此處可寫具體邏輯設置獲取焦點的input 50 51 var inputElem = document.querySelector('input'); 52 53 inputElem.focus(); 54 55 }, 200); 56 57 }; 58 59 mui.plusReady(function() { 60 61 initNativeObjects(); 62 63 showSoftInput(); 64 65 });
微信支付首次支付成功,后面支付報-1錯誤
這個是簽名生成工具:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN
應用簽名的修改位置:
開放平台-->管理中心(頁面頂部)-->移動應用(左上角)-->點擊查看按鈕-->跳轉到應用詳情頁面,
在頁面末尾有個開發信息,然后點擊修改。
簽名修改后,要過一段時間才會生效,我過了10分鍾左右。


