Přejít k navigační liště

Zdroják » Různé » Aplikace pro Windows Store v HTML5 – kontrakty

Aplikace pro Windows Store v HTML5 – kontrakty

Články ‐ ‐ Různé ‐

V tomto díle se zaměříme na kontrakty. Kontrakty jsou specifické pro Windows Store aplikace a umožňují vám integrovat vaši aplikaci do operačního systému.

Základní kontrakty jsou:

  • Hledání
  • Sdílení
  • Nastavení

Vyhledávání

Pomocí tohoto kontraktu můžete hledání ve vaší aplikaci integrovat přímo do systémového hledání. Uživatel pak hledá informace z jednoho místa.

image1

Nejdříve je potřeba integraci do systémového vyhledávání deklarovat v package.appxmanifest.

image2

Pak je třeba zaregistrovat událost, kterou vyvolává systémové hledání. Těchto událostí je několik, podle toho, jaký komfort chcete uživateli nabídnout, např. našeptávání. Pokud chcete jen základní vyhledávání, stačí zaregistrovat událost onquerysubmitted.

Windows.ApplicationModel.Search.SearchPane.getForCurrentView().onquerysubmitted = function (eventObject) {
    txtSearch.innerText = eventObject.queryText;
};

Search contract sample obsahuje další příklady použití kontraktu hledání.

Sdílení

Pomocí kontraktu sdílení můžete předávat informace z jedné aplikace do druhé. Princip je velmi podobný schránce. Aplikace může být zdrojem sdílení. Zdroj sdílení naplní datový balíček, který je pak předán aplikaci, která se označuje jako cíl sdílení. Na následujícím snímku obrazovky je zdrojem sdílení aplikace Mapy a cílem sdílení je aplikace Pošta.

image3

Typ sdílených dat

Sdílet můžete jakýkoliv typ dat. Pro některé typy, jako je např. text, URL, obrázek, jsou přímo připravené vlastnosti objektu DataRequest. Pokud potřebujete sdílet jiný typ dat, např. poštovní adresu, musíte tento typ dat nějak popsat. Můžete použít třeba MIME Type nebo obecně uznávané slovníky ze schema.org. Zdroj sdílení jen naplní datový balíček, ale cíl sdílení musí v package.appxmanifest deklarovat, jakým typům dat rozumí.

image4

Zdroj sdílení

U zdroje sdílení stačí opět zaregistrovat příslušnou událost, v které pak naplníte datový balíček informacemi, které chcete sdílet.

Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView().ondatarequested = function (eventObject) {
    var request = eventObject.request;

    request.data.properties.title = "MSDN Blog"; // musite nastavit!
    request.data.setText("MSDN Blog");
    request.data.setUri(new Windows.Foundation.Uri("http://blogs.msdn.com/b/vyvojari/"));
};

Cíl sdílení

Vytvořit cíl sdílení je již komplexnější úloha, pro kterou budete muset vytvořit i uživatelské rozhraní. Podívejte se na příklad Sharing content target app sample.

Nastavení

Nastavení je vlastně jediný kontrakt, který budete muset implementovat. Do nastavení musíte minimálně přidat typické „O aplikaci“, kde uživatel najde kontakt na technickou podporu a případně odkaz na dokument o ochraně osobních údajů, pokud ho aplikace vyžaduje.

image5

Integrace do nastavení se opět děje pomocí události.

app.onsettings = function (e) {
    e.detail.applicationcommands = {    
        "about": {
            href: "/pages/about/about.html",
            title: "About"
        }
    }
    WinJS.UI.SettingsFlyout.populateSettings(e);
};

Tím jsme vytvořili položku s textem About v nastavení, která odkazuje na stránku /pages/about/about.html. Stránka about musí obsahovat element s id about, který je ovládací prvek WinJS.UI.SettingsFlyout.

<body>
    <div id="about" data-win-control="WinJS.UI.SettingsFlyout" data-win-options="{width: 'narrow'}">
        <div class="SettingsPane">
            <div class="win-label">
                <button onclick="WinJS.UI.SettingsFlyout.show()" class="win-backbutton">
                </button>
                <span class="SettingsTitle">About</span>
            </div>
            <article class="SettingsContent">
                <h2>Kontrakty</h2>
            </article>
        </div>
    </div>
</body>

POZOR! Výchozí barva textu je bílá na bílem pozadí. Je třeba změnit pozadí #about.

Zdrojové kódy z tohoto článku ke stažení.

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů

AI přepracovala 300 tisíc řádků Street Fighteru III. Hlídal ji hash každého snímku

‐ AI ‐
Komentáře: 0
AI agenti za tři týdny přepracovali dekompilovaný kód Street Fighteru III: 3rd Strike a podle metriky CodeScene dosáhli nejvyššího možného skóre kvality. Shoda s původní verzí se ověřovala přehráváním herních záznamů a porovnáním hashe herního stavu po každém snímku. Taková kontrola je přísnější než běžné testy, zachytí ale jen to, co do hashe vstupuje.

DressCode si vezme váš PHP kód do parády

‐ PHP ‐
Komentáře: 0
Napsat nové pravidlo do PHP CS Fixeru nebo PHP_CodeSnifferu je za trest. David Grudl to zkusil kvůli jedinému řádku `use function` a místo pravidla z toho vznikl nový nástroj DressCode, postavený nad stromem, který ze zdrojáku nic nezahodí. Ukážeme si, jak ho nasadit, nastavit a zapojit do práce AI agenta.

Proč Anthropic ve svém monorepozitáři opustil Git? AI agenti změnili pravidla hry

‐ Různé ‐
Komentáře: 0
Anthropic nahradil Git ve svém hlavním monorepozitáři vlastním systémem Scion. Důvodem je prudký nárůst změn vytvářených s pomocí AI agentů: zatímco v květnu 2026 firma začleňovala přibližně 2 500 změn denně, v září jich bylo přes 30 000. Nový systém přesouvá správu historie na server, omezuje stahování nepotřebných dat a zrychluje přípravu kódu pro testování. Nejde však o univerzální náhradu Gitu.