2017-03-23 1 views
0

Wie kann ich unterscheiden, wenn mein Code in einem Chrom-Browser oder einer Chrome-App ausgeführt wird? Die Anwendung verwendet Webview zum Laden bestimmter Seiten, in denen der JavaScript-Code für Chrome-App und Chrome-Browser anders funktionieren muss.unterscheiden zwischen Chrome-Browser und Chrome-App in JavaScript

+0

@Xan Dies ist kein Duplikat. Hier geht es um Code in einer Webansicht. –

+0

Richtig, sorry, juckender Triggerfinger. Ich werde mich ausziehen. – Xan

Antwort

0

Der sauberste Weg wäre inject a content script in das Webview, das wiederum injects some code in die Seite vor dem Laden.

etwas in diese Richtung:

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(); 

Dann in Ihrem Code können Sie überprüfen, ob window.inWebview definiert ist und wahr.

Weniger saubere Alternativen:

  • Ändern Sie den User-Agent in vorhersehbarer Weise mit webview.setUserAgentOverride.
  • Laden Sie einfach die Seite mit einem zusätzlichen Parameter: https://www.example.com/app?webview=1.
Verwandte Themen