app內嵌H5網頁(webviewJavaScriptBridge)

來源:互聯網
上載者:User

標籤:model   android5   var   ios   echo   view   push   src   rem   

摘要:使用的外掛程式為webviewJavaScriptBridge,app端需要引入一下這個包,html頁面只需一段JS代碼 與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 = ‘https://__bridge_loaded__‘;                 

        document.documentElement.appendChild(WVJBIframe);                 

        setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)           

}

 
<!-- 處理互動  方法名要和ios內定義的對應-->

setupWebViewJavascriptBridge(function(bridge) {               

 

        bridge.registerHandler("showAlert", function(data) {   //ios調用js方法                       

               alert(data+",54646")                 

        });

        bridge.callHandler(‘objcEchoToJs‘, { foo:‘bar‘ }, function(response) { //js調用ios方法                     

 
               alert(‘收到回調:‘+response)
 

         })           

})  

與android互動

<! 申明互動(此處代碼固定) >

function connectWebViewJavascriptBridge(callback) {

                if (window.WebViewJavascriptBridge) {

                    callback(WebViewJavascriptBridge)

                } else {

                    document.addEventListener(‘WebViewJavascriptBridgeReady‘, function() {

                            callback(WebViewJavascriptBridge)

                    },false);

                }

}

 
<!-- 處理互動  方法名要和android內定義的對應-->

connectWebViewJavascriptBridge(function(bridge) {

            bridge.registerHandler("functionInJs", function(data, responseCallback) {   //android調用js方法

                alert(data);

            });

            bridge.callHandler(‘objcEchoToJs‘, {‘param‘: data } , function(responseData) {   //js調用android方法

                alert(responseData);

            });

 })

總結:互動聲明代碼固定,互動介面與IOS/android對應好即可(附:前端的registerHandler方法介面對應他們的callHandler,callHandler方法介面對應他們的registerHandler)

app內嵌H5網頁(webviewJavaScriptBridge)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.