0
コードがクロムブラウザまたはクロムアプリケーション内で実行されているかどうかを区別するにはどうすればよいですか?アプリケーションはwebviewを使用して、javascriptコードがchromeアプリケーションとchromeブラウザで異なるように動作する特定のページをロードします。は、JavaScriptのクロムブラウザとクロムアプリケーションを区別する
コードがクロムブラウザまたはクロムアプリケーション内で実行されているかどうかを区別するにはどうすればよいですか?アプリケーションはwebviewを使用して、javascriptコードがchromeアプリケーションとchromeブラウザで異なるように動作する特定のページをロードします。は、JavaScriptのクロムブラウザとクロムアプリケーションを区別する
もっともきれいな方法は、読み込む前にページに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
でページを読み込むだけです。
@Xanこれは重複していません。これは、Webビュー内のコードです。 –
右、申し訳ありませんが、かゆみトリガー指。私は不当になるでしょう。 – Xan