Alternative App-Symbole in Xamarin.iOS

In diesem Artikel wird die Verwendung alternativer App-Symbole in Xamarin.iOS behandelt.

Apple hat iOS 10.3 mehrere Verbesserungen hinzugefügt, mit denen eine App ihr Symbol verwalten kann:

  • ApplicationIconBadgeNumber – Ruft den Badge des App-Symbols im Springboard ab oder legt es fest.
  • SupportsAlternateIcons – Wenn true die App über einen alternativen Satz von Symbolen verfügt.
  • AlternateIconName – Gibt den Namen des alternativen Symbols zurück, das derzeit ausgewählt ist, oder null wenn das primäre Symbol verwendet wird.
  • SetAlternameIconName – Verwenden Sie diese Methode, um das Symbol der App auf das angegebene alternative Symbol zu ändern.

Eine Beispielwarnung, wenn eine App ihr Symbol ändert

Hinzufügen alternativer Symbole zu einem Xamarin.iOS-Projekt

Damit eine App zu einem alternativen Symbol wechseln kann, muss eine Sammlung von Symbolbildern in das Xamarin.iOS-App-Projekt aufgenommen werden. Diese Bilder können dem Projekt nicht mithilfe der typischen Assets.xcassets Methode hinzugefügt werden, sie müssen direkt dem Ordner Resources hinzugefügt werden.

Gehen Sie folgendermaßen vor:

  1. Wählen Sie die erforderlichen Symbolbilder in einem Ordner aus, wählen Sie alle aus, und ziehen Sie sie in den Ordner Ressourcen im Projektmappen-Explorer:

    Auswählen der Symbolbilder aus einem Ordner

  2. Wenn Sie dazu aufgefordert werden, wählen Sie Kopieren aus, verwenden Sie dieselbe Aktion für alle ausgewählten Dateien, und klicken Sie auf die Schaltfläche OK :

    Dialogfeld

  3. Der Ordner Resources sollte nach Abschluss wie folgt aussehen:

    Der Ordner

Ändern der Datei "Info.plist"

Wenn die erforderlichen Bilder dem Ordner Resources hinzugefügt werden, muss der SCHLÜSSEL CFBundleAlternateIcons der Datei Info.plist des Projekts hinzugefügt werden. Dieser Schlüssel definiert den Namen des neuen Symbols und die Bilder, aus denen es besteht.

Gehen Sie folgendermaßen vor:

  1. Doppelklicken Sie auf die info.plist-Datei im Projektmappen-Explorer, um sie zu öffnen und zu bearbeiten.
  2. Wechseln Sie zur Ansicht Quelle.
  3. Fügen Sie einen Schlüssel für Bündelsymbole hinzu, und lassen Sie den Typ auf Wörterbuch festgelegt.
  4. Fügen Sie einen Schlüssel hinzu CFBundleAlternateIcons , und legen Sie den Typ auf Wörterbuch fest.
  5. Fügen Sie einen Schlüssel hinzu AppIcon2 , und legen Sie den Typ auf Wörterbuch fest. Dies ist der Name des neuen alternativen App-Symbolsatzes.
  6. Hinzufügen eines Schlüssels CFBundleIconFiles und Festlegen des Typs auf Array
  7. Fügen Sie dem CFBundleIconFiles Array für jede Symboldatei eine neue Zeichenfolge hinzu, wobei die Erweiterung und die @2xSuffixe , @3xusw. weggelassen werden (Beispiel 100_icon). Wiederholen Sie diesen Schritt für jede Datei, aus der der alternative Symbolsatz besteht.
  8. Fügen Sie dem AppIcon2 Wörterbuch einen UIPrerenderedIcon Schlüssel hinzu, legen Sie Typ auf Boolesch und den Wert auf Nein fest.
  9. Speichern Sie die Änderungen in der Datei.

Die resultierende Datei Info.plist sollte nach Abschluss wie folgt aussehen:

Die fertige Datei

Oder wie folgt, wenn sie in einem Text-Editor geöffnet wird:

<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>

Verwalten des App-Symbols

Da die im Xamarin.iOS-Projekt enthaltenen Symbolbilder und die Datei Info.plist ordnungsgemäß konfiguriert sind, kann der Entwickler eines der vielen neuen Features verwenden, die iOS 10.3 hinzugefügt wurden, um das Symbol der App zu steuern.

Mit SupportsAlternateIcons der -Eigenschaft der UIApplication -Klasse kann der Entwickler ermitteln, ob eine App alternative Symbole unterstützt. Beispiel:

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

Die ApplicationIconBadgeNumber -Eigenschaft der UIApplication -Klasse ermöglicht es dem Entwickler, die aktuelle Signalnummer des App-Symbols im Springboard abzurufen oder festzulegen. Der Standardwert ist 0 (null). Beispiel:

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

Die AlternateIconName -Eigenschaft der UIApplication -Klasse ermöglicht es dem Entwickler, den Namen des derzeit ausgewählten alternativen App-Symbols abzurufen, oder es wird zurückgegeben null , wenn die App das primäre Symbol verwendet. Beispiel:

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

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

Die SetAlternameIconName -Eigenschaft der UIApplication -Klasse ermöglicht es dem Entwickler, das App-Symbol zu ändern. Übergeben Sie den Namen des Symbols, um das primäre Symbol auszuwählen oder null zum primären Symbol zurückzukehren. Beispiel:

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

Wenn die App ausgeführt wird und der Benutzer ein alternatives Symbol auswählt, wird eine Warnung wie die folgende angezeigt:

Eine Beispielwarnung, wenn eine App ihr Symbol ändert

Wenn der Benutzer zurück zum primären Symbol wechselt, wird eine Warnung wie die folgende angezeigt:

Eine Beispielwarnung, wenn eine App auf das primäre Symbol wechselt

Zusammenfassung

In diesem Artikel wurde das Hinzufügen alternativer App-Symbole zu einem Xamarin.iOS-Projekt und deren Verwendung innerhalb der App behandelt.