2017-03-23 8 views
0

コードがクロムブラウザまたはクロムアプリケーション内で実行されているかどうかを区別するにはどうすればよいですか?アプリケーションはwebviewを使用して、javascriptコードがchromeアプリケーションとchromeブラウザで異なるように動作する特定のページをロードします。は、JavaScriptのクロムブラウザとクロムアプリケーションを区別する

+0

@Xanこれは重複していません。これは、Webビュー内のコードです。 –

+0

右、申し訳ありませんが、かゆみトリガー指。私は不当になるでしょう。 – Xan

答えて

0

もっともきれいな方法は、読み込む前にページにinjects some codeという順番でwebviewにinject a content scriptを入れることです。

これらの線に沿って何か:

webview.addContentScripts([{ 
    name: 'beacon', 
    matches: ['https://www.example.com/*'], 
    js: { files: ['beacon.js'] }, 
    run_at: 'document_start' 
}]); 
webview.src = "https://www.example.com/app" 

// beacon.js 
var script = document.createElement('script'); 
script.textContent = "window.inWebview = true;"; 
(document.head||document.documentElement).appendChild(script); 
script.remove(); 

その後は、あなたのコードでは、あなたはwindow.inWebviewが定義され、真されているかどうかを確認することができます。

少ないクリーンな代替案:

  • webview.setUserAgentOverrideと予測可能な方法でユーザーエージェントを変更します。
  • 追加のパラメータ:https://www.example.com/app?webview=1でページを読み込むだけです。
関連する問題