vue 調用 ios提供的方法


各種百度之后,在別的站看到一篇文章,介紹可以使用 WebViewJavascriptBridge與原生app進行通信;

在項目中嘗試了一下,確實有效記錄一下。

原文鏈接:

https://blog.csdn.net/szjSmiling/article/details/82773293

1,引入第三方WebViewJavascriptBridge的庫

 1     function setupWebViewJavascriptBridge(callback) {
 2       if (window.WebViewJavascriptBridge) {
 3         return callback(window.WebViewJavascriptBridge)
 4       }
 5       if (window.WVJBCallbacks) {
 6         return window.WVJBCallbacks.push(callback)
 7       }
 8       window.WVJBCallbacks = [callback]
 9       let WVJBIframe = document.createElement('iframe');
10       WVJBIframe.style.display = 'none'
11       WVJBIframe.src = 'https://__bridge_loaded__'
12       document.documentElement.appendChild(WVJBIframe);
13       setTimeout(() => {
14         document.documentElement.removeChild(WVJBIframe)
15       }, 0)
16     }
17     export default {
18       callhandler(name, data, callback) {
19         setupWebViewJavascriptBridge(function (bridge) {
20           bridge.callHandler(name, data, callback)
21         })
22       },
23       registerhandler(name, callback) {
24         setupWebViewJavascriptBridge(function (bridge) {
25           bridge.registerHandler(name, function (data, responseCallback) {
26             callback(data, responseCallback)
27           })
28         })
29       }
30     }

新建一個js文件,把上面的代碼復制粘貼就好了

2,在main.js中引入文件

import Bridge from './assets/js/bridge.js'

Vue.prototype.$bridge = Bridge

3,調用方法

let ua = navigator.userAgent;
            let isAndroid = ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1;
            let isiOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
            // console.log(isAndroid, '安卓')
            // console.log(isiOS, 'ios')
            if (isiOS) {

                this.$bridge.callhandler('popToStudyRootVC', (data) => {
                    // 處理返回數據
                    console.log(data, '我走了這里')
                })
            }
popToStudyRootVC:是有原生開發的同事定義的方法名

這樣就完成了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM