まず、確立JSbrideg.jsファイル
たjsBridge = {
isAndroid:ヌル、
iSiOS:ヌル、
callHandlerFunc:関数(json_data){
この= VAR。
res_data = nullでした。
NV = nullでした。
//警告( "callHandlerFunc");
VAR U = navigator.userAgent。
that.isAndroid = u.indexOf( 'アンドロイド')> -1 || u.indexOf( 'Adrの')> -1; //アンドロイド终端
that.isIOS = !! u.match(/ \(I [^;] +;(U;?。)CPU +のMac OS X /); // IOS终端
{(that.isIOS)場合
//警告( "IOS")。
NV = window.GCWebviewJSBridge。
}そうしないと{
NV = window.WebViewJavascriptBridge。
}
nv.callHandler( 'getOS'、json_data、関数(応答){
res_data =応答;
});
res_dataを返します。
}、
initJsBridge:関数(readyCallback){
この= VAR。
VAR U = navigator.userAgent。
VAR isAndroid = u.indexOf( 'アンドロイド')> -1 || u.indexOf( 'Adrの')> -1; //アンドロイド终端
VAR isIOS = !! u.match(/ \(I [^;] +;(U;?。)CPU +のMac OS X /); // IOS终端
//登録jsbridge
関数connectWebViewJavascriptBridge(コールバック){
IF(isAndroid){
IF(window.WebViewJavascriptBridge){
コールバック(WebViewJavascriptBridge)
} そうしないと {
document.addEventListener(
'WebViewJavascriptBridgeReady'
、 関数 () {
コールバック(WebViewJavascriptBridge)
}、
偽
);
}
リターン;
}
{(isIOS)場合
//警告( "ios2222");
IF(window.GCWebviewJSBridge){
復帰コールバック(GCWebviewJSBridge)。
}
IF(window.GCWVJSBCallBacks){
window.GCWVJSBCallBacks.push(コールバック関数)を返します。
}
window.GCWVJSBCallBacks = [コールバック]。
VAR GCWVJSBIframe =のdocument.createElement( 'IFRAME');
GCWVJSBIframe.style.display = 'なし';
GCWVJSBIframe.src = 'gcwvjsbscheme:// __ GC_BRIDGE_LOADED__';
document.documentElement.appendChild(GCWVJSBIframe)。
setTimeout(関数(){document.documentElement.removeChild(GCWVJSBIframe)
}、0);
}
}
//コール登録方法
connectWebViewJavascriptBridge(関数(ブリッジ){
IF(isAndroid){
bridge.init(関数(メッセージ、responseCallback){
console.log(、メッセージ 'JSは、メッセージが表示されました');
responseCallback(データ)。
});
}
//ここだけcallHandlerウェイサウンドトラックコードを呼び出す方法を登録して?
// jsbridge_getJsMessageアプリ方法は、所望のデータのデータのフロントエンドに応答バックこの方法によって、遠位パラメータ渡しを定義、定義されています
bridge.registerHandler( 'jsbridge_getJsMessage'、関数(データ、responseCallback){
VAR jsdata = JSON.parse(データ)。
responseCallback(2「上のネイティブパス:」+データ)。
});
readyCallback();
});
}
}
jsBridge.initJsBridge();
輸出のデフォルト{
//オリジナルのネイティブアプリケーションにデータを送信します
callHandler(データ){
=データをJSONてみましょう。
リターンjsBridge.callHandlerFunc(JSON)。
}、
}
第二に、注意を払う:man.jsで登録
「コンポーネント/ JSbridge」からインポートブリッジ
。Vue.prototype $ブリッジ=ブリッジ。
ユーザのニーズが取得した情報アプリを通信する場合、アクセス許可がないで、ルーティング制御、フロントエンドを実行します
router.beforeEach((に、次から)=> {})コール、ページがロードされていないので、
window.WebViewJavascriptBridgeか
IF(APP){
}そうしないと{
}
window.GCWebviewJSBridgeは存在しません。
プロセスはApp.vueであるに私は
時計:{//監視
(からの)「$ルート」{
アプリ= window.localStorage.getItem(「isapp」)しましょう; //アプリかどうかに入ります
聞かせてuseid = window.localStorage.getItem( 'user_idの'); //获取useid
もし(!のuseid){
IF(to.path == '/' || to.path == '/ C' || to.path == '/ A' || to.path == '/ B'){
リターン;
}
VaRのJSON = { "タイプ":101、 "VIDEOID": ""}。
この$ bridge.callHandler(JSON.stringify(JSON)参照);。、記録バッファ内の通信アプリケーションでは、ユーザID(ユーザ情報)をユーザ情報登録処理を与えます
}
}}