jsbrage——和app交互

Posted dontes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsbrage——和app交互相关的知识,希望对你有一定的参考价值。

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

 

 

 

 

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交互的主要内容,如果未能解决你的问题,请参考以下文章

JsBrage -- App中WebView与JS的交互桥梁

如何使用 xcode 将快照划分为多个片段,以便让用户与每个片段进行交互?

如何在不与 MainActivity 交互的情况下从通知中打开片段页面?

前端防扒代码片段

前端防扒代码片段

前端防扒代码片段