diff options
Diffstat (limited to 'files/pl/zastosowanie_nsixulappinfo/index.html')
-rw-r--r-- | files/pl/zastosowanie_nsixulappinfo/index.html | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/files/pl/zastosowanie_nsixulappinfo/index.html b/files/pl/zastosowanie_nsixulappinfo/index.html deleted file mode 100644 index 6db49f9ad3..0000000000 --- a/files/pl/zastosowanie_nsixulappinfo/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Zastosowanie nsIXULAppInfo -slug: Zastosowanie_nsIXULAppInfo -tags: - - Dodatki - - Rozszerzenia - - Wszystkie_kategorie -translation_of: Archive/Mozilla/XUL/Using_nsIXULAppInfo ---- -<p> -Począwszy od Mozilla/<a href="pl/XULRunner">XULRunner</a> 1.8 istnieje sposób na dowiedzenie się na jakiej aplikacji, wersji aplikacji i wersji <a href="pl/Gecko">Gecko</a> pracuje Twój kod. -</p><p>Jest to bardzo przydatne np. dla <a href="pl/Rozszerzenia">rozszerzeń</a>, które obsługują kilka aplikacji opartych o Mozillę lub kilka wersji pojedynczej aplikacji. <b>Nie</b> jest to przydatne dla skryptów na stronach internetowych, które powinny nadal używać <a href="pl/DOM/window.navigator">obiektu navigator</a>, gdy nie jest możliwa detekcja na podstawie cech przeglądarki. -</p> -<h2 id="Interfejs_nsIXULAppInfo"> Interfejs <code>nsIXULAppInfo</code> </h2> -<p>Aby rozdróżnić różne aplikacje oparte o Mozillę, użyj zamrożonego interfejsu <a href="pl/NsIXULAppInfo">nsIXULAppInfo</a>. Poniższe fragmenty zawierają kilka przykładów użycia <code>nsIXULAppInfo</code> z poziomu JavaScriptu. -</p><p>Zauważ że, mimo iż Firefox 1.5, Thunderbird 1.5 i inne aplikacje oparte o <a href="pl/XULRunner">XULRunnera</a> 1.8 obsługują <code>nsIXULAppInfo</code>, starsze aplikacje, takie jak Firefox i Thunderbird 1.0, nie obsługują go. Będziesz musiał napisać <a href="#old">dodatkowy kod dla starszych wersji</a>. -</p> -<h3 id="Uzyskiwanie_nsIXULAppInfo"> Uzyskiwanie <code>nsIXULAppInfo</code> </h3> -<p>Aby uzyskać komponent implementujący <code>nsIXULAppInfo</code> użyj tego kodu: -</p> -<pre class="eval">var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); -</pre> -<p>(Po więcej wyjaśnień zajrzyj na <a class="external" href="http://xulplanet.com/references/xpcomref/creatingcomps.html">ten artykuł z XUL Planet</a>.) -</p> -<h3 id="Uzyskiwanie_informacji_o_aplikacji"> Uzyskiwanie informacji o aplikacji </h3> -<p>Po otrzymaniu komponentu możesz odczytać jego własności, aby uzyskać identyfikator aplikacji, nazwę rozumianą przez człowieka, wersję, platformę itd. Aby zobaczyć pełną listę własności <code>nsIXULAppInfo</code>, zobacz opis interfejsu <a href="pl/NsIXULAppInfo">nsIXULAppInfo</a>. -</p> -<h4 id="Identyfikator"> Identyfikator </h4> -<p>Możesz dowiedzieć się na jakiej aplikacji pracujesz poprzez użycie własności <code>nsIXULAppInfo.ID</code>. -</p> -<pre class="eval">const FIREFOX_ID = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"; -const THUNDERBIRD_ID = "{3550f703-e582-4d05-9a08-453d09bdfdc6}"; -var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); -if(appInfo.ID == FIREFOX_ID) { - // pracujemy pod Firefoksem -} else if(appInfo.ID == THUNDERBIRD_ID) { - // pracujemy pod Thunderbirdem -} else { - // inna aplikacja -} -</pre> -<p>Uwaga: możesz również użyć własności <code>nsIXULAppInfo.name</code>, która zwraca nazwę bardziej przyjazną dla człowieka, taką jak "Firefox" - ale kto wie, może znowu zmienią jej nazwę! -</p> -<h4 id="Wersja"> Wersja </h4> -<p>Czasami musisz znać wersję aplikacji, na której działa Twój kod. Przykładowo, jedna z odmrożonych funkcji, na której polegałeś, została zmieniona. -</p><p><b>Uwaga: <code>nsIXULAppInfo</code> dostarcza informacji o <i>aplikacji</i> i <i>platformie</i>, bądź więc ostrożny i wybierz właściwą, zwłaszcza przy obsłudze aplikacji opartych o XULRunnera.</b> -</p><p>W takim przypadku chciałbyś prawdopodobnie sprawdzić <code>nsIXULAppInfo.version</code> i/lub <code>nsIXULAppInfo.appBuildID</code>. Druga własność jest użyteczna, jeśli zamierzasz obsługiwać rozwojowe wersje nightly aplikacji, natomiast pierwsza, gdy zamierzasz wspierać tylko oficjalne wydania wprowadzając rozróżnienie między kompilacjami gałęzi a kompilacjami pnia. -</p><p><b>Przykład 1: sprawdzenie wersji Firefoksa</b> -</p> -<pre class="eval">// przyjmując, że pracujemy pod Firefoksem -var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); -var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"] - .getService(Components.interfaces.nsIVersionComparator); -if(versionChecker.compare(appInfo.version, "1.5") >= 0) { - // używamy Firefoksa 1.5 lub późniejszego -} -</pre> -<p><b>Przykład 2: radzimy sobie z wersjami nightly</b> -</p> -<pre class="eval">var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); -if(appInfo.appBuildID >= "2005093006") { - // używamy kompilacji 2005093006 lub nowszej -} -</pre> -<p>Nie powinieneś polegać na identyfikatorach kompilacji w przypadku wydań, ponieważ mogą one być różne dla konkretnych kompilacji lub zlokalizowanych wersji aplikacji. -</p> -<h4 id="Wersja_platformy"> Wersja platformy </h4> -<p><code>nsIXULAppInfo</code> dostarcza informacji zarówno o aplikacji (jak na przykład Firefoksie) i platformie (tzn. Gecko lub XULRunner). Na przykład, w Firefoksie 1.5 beta 2 wersja aplikacji to 1.4.1, a wersja platformy to 1.8b5. Bądź ostrożny przy korzystaniu z tych informacji, zwłaszcza przy obsłudze aplikacji opartych o XULRunnera. -</p><p>Uzyskiwanie informacji o wersji platformy wygląda następująco: -</p> -<pre class="eval">var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); -var platformVer = appInfo.platformVersion; -var platformBuildID = appInfo.platformBuildID; -</pre> -<p><s id="old"> -</s></p><s id="old"> -<h2 id="Starsze_wersje"> Starsze wersje </h2> -<p>Jak wspomniano wyżej, starsze wersji aplikacji oparte o Mozillę 1.7 nie obsługują <code>nsIXULAppInfo</code>. Musisz napisać dodatkowy kod, jeśli zdecydujesz się na ich obsługę. -</p><p>Na przykład, Firefox i Thunderbird 1.0 przechowywały swoje identyfikatory w opcji <code>app.id</code> (a wersje w <code>app.version</code>), więc mógłbyś użyć kodu takiego jak ten, by dowiedzieć się na jakiej aplikacji pracujesz: -</p> -<pre class="eval">function getAppID() { - var id; - if("@mozilla.org/xre/app-info;1" in Components.classes) { - // running under Mozilla 1.8 or later - id = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo).ID; - } else { - try { - id = Components.classes["@mozilla.org/preferences-service;1"] - .getService(Components.interfaces.nsIPrefBranch) - .getCharPref("app.id"); - } catch(e) { - // bardzo stara wersja - dump(e); - } - } - return id; -} -alert(getAppID()); -</pre> -<h2 id="Zobacz_także"> Zobacz także </h2> -<ul><li> MXR: <a href="https://dxr.mozilla.org/mozilla-central/source/xpcom/system/nsIXULAppInfo.idl" rel="custom">nsIXULAppInfo.idl</a> -</li></ul> -</s> |