33 * @author Kntt 20190216
44 */
55import MockBridge from './mock'
6- 6+ import { getDeviceInfo } from './utils'
7+ const deviceInfo = getDeviceInfo ( )
78export default class VueJsBridgePlugin {
89 constructor ( options = { } ) {
910 this . options = options
@@ -21,21 +22,32 @@ export default class VueJsBridgePlugin {
2122 const bridge = new MockBridge ( mockHandler )
2223 return callback ( bridge )
2324 }
24- // 以下为[WebViewJavascriptBridge](https://github.com/marcuswestin/WebViewJavascriptBridge)源码
25- if ( window . WebViewJavascriptBridge ) {
26- return callback ( window . WebViewJavascriptBridge )
27- }
28- if ( window . WVJBCallbacks ) {
29- return window . WVJBCallbacks . push ( callback )
25+ if ( deviceInfo . android ) {
26+ // 以下为[JsBridge](https://github.com/lzyzsd/JsBridge)源码 -- android
27+ if ( window . WebViewJavascriptBridge ) {
28+ callback ( window . WebViewJavascriptBridge )
29+ } else {
30+ document . addEventListener ( 'WebViewJavascriptBridgeReady' , function ( ) {
31+ callback ( window . WebViewJavascriptBridge )
32+ } , false )
33+ }
34+ } else {
35+ // 以下为[WebViewJavascriptBridge](https://github.com/marcuswestin/WebViewJavascriptBridge)源码 -- ios
36+ if ( window . WebViewJavascriptBridge ) {
37+ return callback ( window . WebViewJavascriptBridge )
38+ }
39+ if ( window . WVJBCallbacks ) {
40+ return window . WVJBCallbacks . push ( callback )
41+ }
42+ window . WVJBCallbacks = [ callback ]
43+ var WVJBIframe = document . createElement ( 'iframe' )
44+ WVJBIframe . style . display = 'none'
45+ WVJBIframe . src = 'wvjbscheme://__BRIDGE_LOADED__'
46+ document . documentElement . appendChild ( WVJBIframe )
47+ setTimeout ( function ( ) {
48+ document . documentElement . removeChild ( WVJBIframe )
49+ } , 0 )
3050 }
31- window . WVJBCallbacks = [ callback ]
32- var WVJBIframe = document . createElement ( 'iframe' )
33- WVJBIframe . style . display = 'none'
34- WVJBIframe . src = 'wvjbscheme://__BRIDGE_LOADED__'
35- document . documentElement . appendChild ( WVJBIframe )
36- setTimeout ( function ( ) {
37- document . documentElement . removeChild ( WVJBIframe )
38- } , 0 )
3951 }
4052 /**
4153 * 注册提供native调用的方法
0 commit comments