• 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>
    
    复制代码
    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) {
        })
    })
  • 相关阅读:
    基础 之 数组
    记录某个进程任意的采集时间内,top 10 的cpu和内存值的平均和求和
    8、广度优先搜索
    7、散列表
    计算机网络之从接入网到互联网
    计算机网络
    15、python之导入模块
    14、函数之匿名函数(lambda)
    13、python中的函数(闭包与装饰器)
    6、快速排序
  • 原文地址:https://www.cnblogs.com/hss-blog/p/9882248.html
Copyright © 2020-2023  润新知