1. 程式人生 > >jsbrage——和app交互

jsbrage——和app交互

charset utf-8 code doc ner str ons char text

技術分享圖片
<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="content-type">
    <title>
        js調用java
    </title>
</head>

<body>
<p>
    <div id="show"></div>
</p>


<p><input type="button" id="enter3" value="payInterface" onclick="payInterface();"/></p>

</body>
<script>

        function setupWebViewJavascriptBridge(callback) {
            if (window.WebViewJavascriptBridge) {
                callback(WebViewJavascriptBridge)
            } else {
                document.addEventListener(
                    ‘WebViewJavascriptBridgeReady‘
                    , function() {
                        callback(WebViewJavascriptBridge)
                    },
                    false
                );
            }

            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)
        }

        //在改function 中添加原生調起js方法
        setupWebViewJavascriptBridge(function(bridge) {

            //註冊原生調起方法
            //參數1: buttonjs 註冊flag 供原生使用,要和原生統一
            //參數2: data  是原生傳給js 的數據
            //參數3: responseCallback 是js 的回調,可以通過該方法給原生傳數據
            bridge.registerHandler("getUserInfos",function(data,responseCallback){

                document.getElementById("show").innerHTML = "buuton js" + data;
                responseCallback("button js callback");
            });


            document.getElementById(‘enter3‘).onclick = function (e) {
            var data = "hello"
            //參數1: pay 註冊flag 供原生使用,要和原生統一
            //參數2: 是調起原生時向原生傳遞的參數
            //參數3: 原生調用回調返回的數據
            bridge.callHandler(‘getBlogNameFromObjC‘,data,function(resp){
                    document.getElementById("show").innerHTML = "payInterface" + resp;
                }
             );
        }
        })
</script>

</html>
技術分享圖片

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function connectWebViewJavascriptBridge (callback) { if (window.WebViewJavascriptBridge) { callback(WebViewJavascriptBridge) } else { document.addEventListener( ‘WebViewJavascriptBridgeReady‘ , function() {
callback(WebViewJavascriptBridge) }, false ); } } connectWebViewJavascriptBridge (function(bridge) { bridge.registerHandler(‘JS Echo‘, function(data, responseCallback) { console.log("JS Echo called with:", data) responseCallback(data) }) bridge.callHandler(‘oliveness‘
, {}, function responseCallback(responseData) { }) })

jsbrage——和app交互