Dela via


Alternativa appikoner i .NET för iOS och tvOS

Apple har flera UIApplication API:er som gör att en app kan hantera sin ikon:

  • UIApplication.SupportsAlternateIcons – Om true appen har en alternativ uppsättning ikoner.
  • UIApplication.AlternateIconName – Returnerar namnet på den alternativa ikonen som för närvarande är markerad eller null om du använder den primära ikonen.
  • UIApplication.SetAlternateIconName – Använd den här metoden för att växla appens ikon till den angivna alternativa ikonen.
  • UNUserNotificationCenter.Current.SetBadgeCount – Anger märkesantalet för appikonen i Springboard (inaktuell i iOS 16+ och tvOS 16+).

En exempelavisering när en app ändrar sin ikon

Lägga till alternativa ikoner i ett .NET-projekt

För att en app ska kunna växla till en alternativ ikon måste en ny .appiconset mapp med en samling ikonbilder inkluderas i projektets tillgångskatalog:

  1. Öppna projektets tillgångskatalog (Assets.xcassets) i Finder:

    Öppna tillgångskatalogen

  2. Skapa en kopia av den befintliga AppIcon.appiconset mappen:

    Kopiera appiconset-mapp

  3. Ersätt varje ikon i den kopierade mappen med den nya ikonen med matchande storlek:

    Skapa nya ikoner

  4. Lägg till appikonen i projektfilen med egenskapen AppIcon:

    <PropertyGroup>
        <AppIcon>AppIcon</AppIcon>
    </PropertyGroup>
    

    Anteckning

    Befintliga projekt anger vanligtvis appikonen med hjälp av XSAppIconAssets-nyckeln i Info.plist -filen – detta kan fortfarande användas, men vi rekommenderar att du växlar till egenskapen AppIcon i projektfilen i stället (vilket också är förenklat eftersom dess värde är namnet på ikonen, inte sökvägen till resursen).

  5. Lägg till de alternativa ikonerna i projektfilen med hjälp av AlternativeAppIcons objektgrupp:

    <ItemGroup>
        <AlternativeAppIcon Include="AlternativeAppIcons" />
    </ItemGroup>
    

Hantera appens ikon

Med de ikonbilder som ingår i .NET-projektet kan utvecklaren styra appens ikon på följande sätt.

Med egenskapen SupportsAlternateIcons för klassen UIApplication kan utvecklaren se om en app stöder alternativa ikoner. Till exempel:

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

Egenskapen ApplicationIconBadgeNumber för klassen UIApplication gör att utvecklaren kan hämta eller ange det aktuella märkesnumret för appikonen i Springboard. Standardvärdet är noll (0). Till exempel:

// Set the badge number to 1
var badgeCount = 1;
UNUserNotificationCenter.Current.SetBadgeCount (badgeCount, (error) => {
    Console.WriteLine ($"Set badge count to {badgeCount}: {(error is null ? "successfully" : error.ToString ())}");
}

Not

UNUserNotificationCenter.SetBadgeCount kräver auktorisering från användaren på iOS, vilket kan hämtas genom att anropa UNUserNotificationCenter.Current.RequestAuthorization innan du anger antalet märken.

Med egenskapen AlternateIconName för klassen UIApplication kan utvecklaren hämta namnet på den alternativa appikonen eller returnerar null om appen använder den primära ikonen. Till exempel:

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

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

Med egenskapen SetAlternameIconName för klassen UIApplication kan utvecklaren ändra appikonen. Skicka namnet på ikonen för att välja eller null för att återgå till den primära ikonen. Till exempel:

void UsePrimaryIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName (null, (error) => {
        Console.WriteLine ($"Set Primary Icon: {(error is null ? "successfully" : error.ToString ())}");
    });
}

void UseAlternateIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName ("AlternateAppIcons", (error) => {
        Console.WriteLine ($"Set Alternate Icon: {(error is null ? "successfully" : error.ToString ())}");
    });
}

När appen körs och användaren väljer en alternativ ikon visas en avisering som följande:

En exempelavisering när en app ändrar sin ikon

Om användaren växlar tillbaka till den primära ikonen visas en avisering som följande:

En exempelavisering när en app ändras till den primära ikonen

Se även