安卓
安卓相對簡單 因爲 安卓可以獲取到我們h5頁面內的window對象
所以
// h5 調用安卓方法
window.discovery.gotoLogin(); // window.x.y (x類名,y方法名)
// 安卓調用h5方法
h5 只需要在 js中聲明 方法即可 安卓即可調用
function login(){}
ios
ios 我這裏分爲2版本
// h5調用 ios
// uiwebview 利用 iframe 方式
function loadURL(url) {
var iFrame;
iFrame = document.createElement("iframe");
iFrame.setAttribute("src", url);
iFrame.setAttribute("style", "display:none;");
iFrame.setAttribute("height", "0px");
iFrame.setAttribute("width", "0px");
iFrame.setAttribute("frameborder", "0");
document.body.appendChild(iFrame);
// 發起請求後這個iFrame就沒用了,所以把它從dom上移除掉
iFrame.parentNode.removeChild(iFrame);
iFrame = null;
}
然後 js 調用 loadURL("login:gotoLogin") IOS 攔截後 進行字符串解析
// wkwebview 利用postmessage
window.webkit.messageHandlers.xxxx.postMessage({type:"pushback"});
// ios 調用h5 依然是在window下 創建一個方法 ios 即可獲取調用