Freigeben über


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 das Signal 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 aktuell ausgewählten alternativen Symbols zurück 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 wechseln.

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 im Xamarin.iOS-App-Projekt enthalten sein. Diese Bilder können dem Projekt nicht mithilfe der typischen Assets.xcassets Methode hinzugefügt werden, sie müssen dem Ordner "Ressourcen " direkt 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" in der Projektmappen-Explorer:

    Auswählen der Symbole 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 ":

    Das Dialogfeld

  3. Der Ordner "Ressourcen " sollte wie folgt aussehen, wenn er abgeschlossen ist:

    Der Ordner

Ändern der Info.plist-Datei

Nachdem die erforderlichen Bilder dem Ordner "Resources" hinzugefügt wurden, 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, die es verfassen.

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 CFBundleAlternateIcons Schlüssel hinzu, und legen Sie den Typ auf "Wörterbuch" fest.
  5. Fügen Sie einen AppIcon2 Schlüssel hinzu, und legen Sie den Typ auf "Wörterbuch" fest. Dies ist der Name des neuen alternativen App-Symbolsatzes.
  6. Hinzufügen eines CFBundleIconFiles Schlüssels und Festlegen des Typs auf Array
  7. Fügen Sie dem CFBundleIconFiles Array eine neue Zeichenfolge für jede Symboldatei hinzu, die die Erweiterung und die @2xSuffixe @3x, usw. (Beispiel 100_icon) verlässt. Wiederholen Sie diesen Schritt für jede Datei, aus der sich der alternative Symbolsatz ergibt.
  8. Fügen Sie dem Wörterbuch einen UIPrerenderedIcon Schlüssel hinzu, legen Sie "Typ" auf "Boolean" und den Wert auf "Nein" fest.AppIcon2
  9. Speichern Sie die Änderungen in der Datei.

Die resultierende Info.plist-Datei sollte wie folgt aussehen, wenn sie abgeschlossen ist:

Die vollständige Info.plist-Datei

Oder so, 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

Mit den Symbolbildern, die im Xamarin.iOS-Projekt enthalten sind und die Info.plist-Datei ordnungsgemäß konfiguriert ist, 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 sehen, ob eine App alternative Symbole unterstützt. Zum Beispiel:

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

Mit ApplicationIconBadgeNumber der Eigenschaft der UIApplication Klasse kann der Entwickler die aktuelle Signalnummer des App-Symbols im Springboard abrufen oder festlegen. Der Standardwert ist 0 (null). Zum Beispiel:

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

Mit AlternateIconName der Eigenschaft der UIApplication Klasse kann der Entwickler den Namen des aktuell ausgewählten alternativen App-Symbols abrufen oder zurückgeben null , wenn die App das primäre Symbol verwendet. Zum Beispiel:

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

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

Mit SetAlternameIconName der Eigenschaft der UIApplication Klasse kann der Entwickler das App-Symbol ändern. Übergeben Sie den Namen des Symbols, um es auszuwählen oder null zum primären Symbol zurückzukehren. Zum 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 Benachrichtigung wie die folgende angezeigt:

Beispielwarnung, wenn eine App ihr Symbol ändert

Wenn der Benutzer wieder zum primären Symbol wechselt, wird eine Benachrichtigung wie die folgende angezeigt:

Beispielwarnung, wenn eine App in das primäre Symbol wechselt

Zusammenfassung

In diesem Artikel werden alternative App-Symbole zu einem Xamarin.iOS-Projekt hinzugefügt und in der App verwendet.