zoukankan      html  css  js  c++  java
  • js交互app

                function initJsBridge(readyCallback) {
                     var u = navigator.userAgent;
                     var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                     var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                     // 注册jsbridge
                     function connectWebViewJavascriptBridge(callback) {
                         if (isAndroid) {
                             if (window.WebViewJavascriptBridge) {
                                 callback(WebViewJavascriptBridge)
                             } else {
                                 document.addEventListener(
                                     'WebViewJavascriptBridgeReady'
                                     , function () {
                                         callback(WebViewJavascriptBridge)
                                     },
                                     false
                                 );
                             }
                             return;
                         }
                         if (isiOS) {
                             if (window.WebViewJavascriptBridge) {
                                 return callback(WebViewJavascriptBridge);
                             }
                             if (window.WVJBCallbacks) {
                                 return window.WVJBCallbacks.push(callback);
                             }
                             window.WVJBCallbacks = [callback];
                             var WVJBIframe = document.createElement('iframe');
                             WVJBIframe.style.display = 'none';
                             WVJBIframe.src = 'https://__bridge_loaded__';
                             document.documentElement.appendChild(WVJBIframe);
                             setTimeout(function () {
                                 document.documentElement.removeChild(WVJBIframe)
                             }, 0)
                         }
                     }
    
                     // 调用注册方法
                     connectWebViewJavascriptBridge(function (bridge) {
                        if (isAndroid) {
                             bridge.init(function (message, responseCallback) {
                                 console.log('JS got a message', message);
                                 responseCallback(data);
                             });
                        }
                          
                         // 只有在这里注册过的方法,在原声代码里才能用callHandler的方式调用
                         bridge.registerHandler('contectLists', function (data, responseCallback) {
                             showResponse(data);
                             alert("data___"+data)
                         });
                          readyCallback();
                      });
                }
    
                // 首先调用JSBridge初始化代码,完成后再设置其他
                initJsBridge(function () {
                    // 通过JsBridge调用原生方法,写法固定,第一个参数时方法名,第二个参数时传入参数,第三个参数时响应回调
                    window.WebViewJavascriptBridge.callHandler('getContects', null, function (response) {
                        // showResponse(response);
                    });
                });
    

      

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

  • 相关阅读:
    国内三大云数据库测试对比
    Nginx源码安装及调优配置
    如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理
    开学了!这些Linux认证你要知道
    快速入门SaltStack
    WPF模板
    C#基础知识回顾-- 属性与字段
    程序员接私活经验谈[转]
    强烈推荐:240多个jQuery插件
    [Java]读取文件方法大全
  • 原文地址:https://www.cnblogs.com/dontes/p/9713558.html
Copyright © 2011-2022 走看看