zoukankan      html  css  js  c++  java
  • webapp js与安卓,ios怎么交互

    /*这段代码是固定的,必须要放到js中*/
    function setupWebViewJavascriptBridge(callback) {

    var u = navigator.userAgent;
    var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/);
    if (!isiOS) {
    if (window.WebViewJavascriptBridge) {
    callback(WebViewJavascriptBridge)
    } else {
    document.addEventListener('WebViewJavascriptBridgeReady', function (event) {
    if(window.onWebViewJavascriptBridgeReady) window.onWebViewJavascriptBridgeReady(window.__bridge = WebViewJavascriptBridge);
    callback(WebViewJavascriptBridge)
    }, false)
    }
    } else {

    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 = 'wvjbscheme://__BRIDGE_LOADED__';
    document.documentElement.appendChild(WVJBIframe);
    setTimeout(function() {
    document.documentElement.removeChild(WVJBIframe)
    }, 0)
    }

    }

    export default {

    callhandler (name, data, callback) {
    setupWebViewJavascriptBridge(function (bridge) {
    bridge.callHandler(name, data, callback)
    })
    },

    registerhandler (name, callback) {
    setupWebViewJavascriptBridge(function (bridge) {
    bridge.registerHandler(name, function (data, responseCallback) {
    callback(data, responseCallback)
    })
    })
    }
    }
    // 调用
    this.$bridge.callhandler('shopCode',{'test':'test'},(data) => {
    this.shopCode = data.shopCode;
    })
  • 相关阅读:
    Django中DEBUG模式详解
    Nginx 的负载均衡
    django 上线配置
    vue 项目实现打印
    vue 一键复制,vue-clipboard2的使用方法
    404.vue
    vue-router封装和用户是否需要登录
    uni-app uview 的使用方法
    grid自适应列表
    tomcat的目录分别代表什么含义
  • 原文地址:https://www.cnblogs.com/langqq/p/9813296.html
Copyright © 2011-2022 走看看