App里webview调用ios或者安卓的方法(内嵌h5页面调用app原生方法)

安卓调用

  //调用登录浮层
  function login(){
      window.{app包名}.login();
  }

IOS调用

var openWindow = function () { };
// IOS
// 互相调用都要加这个方法
function setupWebViewJavascriptBridge(callback) {
    if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
    if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
    window.WVJBCallbacks = [callback];
    var WVJBIframe = document.createElement('iframe');
    WVJBIframe.style.display = 'none';
    WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
    document.documentElement.appendChild(WVJBIframe);
    setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
}
setupWebViewJavascriptBridge(function(bridge) {
    var openWindow = function(urlAddress){
        //客户端已经注册好一个名为“registerOCmethod”的方法,H5直接进行调用(方法名也为“registerOCmethod”)就行,调用的时候可以传客户端需要的参数
        bridge.callHandler('OpenNewPageWithUrl', {'urlAddress':urlAddress}, function responseCallback(responseData) {
            console.log("registerOCmethod:", responseData)
        })
    }
});
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐