Alternativní ikony aplikací v Xamarin.iOS

Tento článek popisuje použití alternativních ikon aplikací v Xamarin.iOS.

Apple přidal do iOS 10.3 několik vylepšení, která aplikaci umožňují spravovat její ikonu:

  • ApplicationIconBadgeNumber - Získá nebo nastaví odznáček ikony aplikace ve Springboardu.
  • SupportsAlternateIcons – Pokud true má aplikace alternativní sadu ikon.
  • AlternateIconName – Vrátí název alternativní ikony, která je aktuálně vybrána, nebo null pokud používáte primární ikonu.
  • SetAlternameIconName – Pomocí této metody přepněte ikonu aplikace na danou alternativní ikonu.

A sample alert when an app changes its icon

Přidání alternativních ikon do projektu Xamarin.iOS

Aby mohla aplikace přepnout na alternativní ikonu, bude potřeba do projektu aplikace Xamarin.iOS zahrnout kolekci obrázků ikon. Tyto obrázky nelze do projektu přidat pomocí typické Assets.xcassets metody, musí být přidány přímo do složky Resources .

Postupujte následovně:

  1. Vyberte požadované obrázky ikon ve složce, vyberte všechny a přetáhněte je do složky Prostředky v Průzkumník řešení:

    Select the icons images from a folder

  2. Po zobrazení výzvy vyberte Kopírovat, Použijte stejnou akci pro všechny vybrané soubory a klikněte na tlačítko OK :

    The Add File to Folder dialog box

  3. Po dokončení by složka Resources měla vypadat takto:

    The Resources folder should look like this

Úprava souboru Info.plist

S požadovanými obrázky přidanými do složky Resources bude nutné do souboru Info.plist projektu přidat klíč CFBundleAlternateIcons. Tento klíč definuje název nové ikony a obrázky, které ji tvoří.

Postupujte následovně:

  1. V Průzkumník řešení poklikejte na soubor Info.plist a otevřete ho pro úpravy.
  2. Přepněte do zobrazení Zdroj .
  3. Přidejte klávesu s ikonami sady a ponechte typ nastavený na slovník.
  4. CFBundleAlternateIcons Přidejte klíč a nastavte typ na slovník.
  5. AppIcon2 Přidejte klíč a nastavte typ na slovník. Bude to název nové sady ikon alternativní aplikace.
  6. CFBundleIconFiles Přidání klíče a nastavení typu na pole
  7. Přidejte do CFBundleIconFiles pole nový řetězec pro každý soubor ikony, který vynechá příponu a @2xpřípony , @3xatd. (příklad 100_icon). Tento krok opakujte pro každý soubor, který tvoří alternativní sadu ikon.
  8. UIPrerenderedIcon Přidejte klíč do slovníkuAppIcon2, nastavte typ na Logolean a hodnotu na Ne.
  9. Uložte změny souboru.

Výsledný soubor Info.plist by měl po dokončení vypadat takto:

The completed Info.plist file

Nebo se to líbí, pokud jste otevřeli v textovém editoru:

<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>AppIcon2</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>100_icon</string>
                <string>114_icon</string>
                <string>120_icon</string>
                <string>144_icon</string>
                <string>152_icon</string>
                <string>167_icon</string>
                <string>180_icon</string>
                <string>29_icon</string>
                <string>40_icon</string>
                <string>50_icon</string>
                <string>512_icon</string>
                <string>57_icon</string>
                <string>58_icon</string>
                <string>72_icon</string>
                <string>76_icon</string>
                <string>80_icon</string>
                <string>87_icon</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
    </dict>
</dict>

Správa ikony aplikace

Díky obrázkům ikon, které jsou součástí projektu Xamarin.iOS a správně nakonfigurovaného souboru Info.plist , může vývojář použít jednu z mnoha nových funkcí přidaných do iOS 10.3 k řízení ikony aplikace.

Vlastnost SupportsAlternateIconsUIApplication třídy umožňuje vývojáři zjistit, jestli aplikace podporuje alternativní ikony. Příklad:

// Can the app select a different icon?
PrimaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
AlternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;

ApplicationIconBadgeNumber Vlastnost UIApplication třídy umožňuje vývojáři získat nebo nastavit aktuální číslo odznáček ikony aplikace ve Springboardu. Výchozí hodnota je nula (0). Příklad:

// Set the badge number to 1
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 1;

AlternateIconName Vlastnost UIApplication třídy umožňuje vývojáři získat název aktuálně vybrané alternativní ikony aplikace nebo se vrátínull, pokud aplikace používá primární ikonu. Příklad:

// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;

if (name != null ) {
    // Do something with the name
}

SetAlternameIconName Vlastnost UIApplication třídy umožňuje vývojáři změnit ikonu aplikace. Předejte název ikony, abyste vybrali nebo null se vrátili k primární ikoně. Příklad:

partial void UsePrimaryIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName (null, (err) => {
        Console.WriteLine ("Set Primary Icon: {0}", err);
    });
}

partial void UseAlternateIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName ("AppIcon2", (err) => {
        Console.WriteLine ("Set Alternate Icon: {0}", err);
    });
}

Když se aplikace spustí a uživatel vybere alternativní ikonu, zobrazí se upozornění podobné následujícímu:

A sample alert when an app changes its icon

Pokud uživatel přepne zpět na primární ikonu, zobrazí se upozornění podobné následujícímu:

A sample alert when an app changes to the primary icon

Shrnutí

Tento článek popisuje přidání alternativních ikon aplikací do projektu Xamarin.iOS a jejich použití uvnitř aplikace.