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

      

  • 相关阅读:
    Laravel $request添加数据或数据修改
    PHP 生成随机字符串
    MySQL 的日期类型有5个,分别是: date、time、year、datetime、timestamp。
    Windows10系统PHP开发环境配置
    yii 分页查询
    win10系统 安装好composer后 cmd 命令行下输入composer提示不是内部或外部的命令,也不是可执行的程序或批处理文件
    MySQL锁机制&&PHP锁机制,应用在哪些场景中呢?
    linux 自总结常用命令(centos系统)
    HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?
    怎么在vi和vim上查找字符串
  • 原文地址:https://www.cnblogs.com/dontes/p/9567257.html
Copyright © 2020-2023  润新知