码迷,mamicode.com
首页 > 移动开发 > 详细

jsbrage——和app交互

时间:2018-10-31 13:55:00      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:load   dde   button   iframe   loaded   type   handler   gis   flag   

 
技术分享图片
<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交互

标签:load   dde   button   iframe   loaded   type   handler   gis   flag   

原文地址:https://www.cnblogs.com/hss-blog/p/9882248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!