2016-07-29 21 views
0

Ich möchte Apps mit meiner Erweiterung starten, aber ich muss überprüfen, ob es bereits geöffnet ist, so dass ich es nicht öffnen oder ein neues App-Fenster öffnen.Extension immer aktuell geöffnet apps

Gibt es überhaupt ich kann es tun?

Danke.

Antwort

0

Verwenden chrome.windows.getAll alle Fenster von app Typ aufzulisten und chrome.management.launchApp eine App, wenn das Fenster nicht gefunden wurde zu starten.

Erforderliche Berechtigungen in manifest.json: "tabs", "management".

function launchApp(id, callback) { 
    chrome.windows.getAll({ 
     windowTypes: ['app'], 
     populate: true 
    }, function(windows) { 
     if (windows.some(function(w) { return w.tabs[0].url.indexOf(id) > 0 })) { 
      if (callback) { 
       callback({state: 'already running'}); 
      } 
      return; 
     } 
     chrome.management.launchApp(id, function() { 
      if (callback) { 
       callback({state: 'launched'}); 
      } 
     }); 
    }); 
} 

Verbrauch:

var appID = 'lkbbjdgfngikaledbinmnhkappgpnklb'; 
launchApp(appID, function(state) { 
    console.log(state); 
}); 
+0

den windows.getAll API Laut "mit 'App' und 'Panel' Fenstertypen auf die Erweiterung der eigenen Fenster beschränkt". Ich muss alle Apps überprüfen:/ – DMkitten

+0

Nein, dieses Zitat bezieht sich auf den Standardzustand, wenn 'windowTypes' nicht angegeben ist. – wOxxOm

+0

Ok, das stimmt! Vielen Dank! – DMkitten