iOS 및 tvOS용 .NET의 대체 앱 아이콘
Apple에는 앱에서 아이콘을 관리할 수 있는 여러 UIApplication API가 있습니다.
-
UIApplication.SupportsAlternateIcons -
true
경우 앱에 대체 아이콘 집합이 있습니다. -
UIApplication.AlternateIconName - 현재 선택된 대체 아이콘의 이름을 반환하거나 기본 아이콘을 사용하는 경우
null
. - UIApplication.SetAlternateIconName
- 이 메서드를 사용하여 앱의 아이콘을 지정된 대체 아이콘으로 전환합니다. -
UNUserNotificationCenter.Current.SetBadgeCount
- Springboard에서 앱 아이콘의 배지 수를 설정합니다(iOS 16 이상 및 tvOS 16 이상에서는 사용되지 않음).
앱에서 아이콘 변경할 때 샘플 경고
.NET 프로젝트에 대체 아이콘 추가
앱이 대체 아이콘으로 전환할 수 있도록 하려면 아이콘 이미지 컬렉션이 있는 새 .appiconset
폴더를 프로젝트의 자산 카탈로그에 포함해야 합니다.
Finder에서 프로젝트의 자산 카탈로그(Assets.xcassets)를 엽니다.
열기
기존
AppIcon.appiconset
폴더의 복사본을 만듭니다.복사
복사한 폴더의 각 아이콘을 일치하는 크기의 새 아이콘으로 바꿉다.
AppIcon
속성을 사용하여 프로젝트 파일에 앱 아이콘을 추가합니다.<PropertyGroup> <AppIcon>AppIcon</AppIcon> </PropertyGroup>
메모
기존 프로젝트는 일반적으로
Info.plist
파일의XSAppIconAssets
키를 사용하여 앱 아이콘을 지정합니다. 이 키는 계속 사용할 수 있지만 대신 프로젝트 파일의AppIcon
속성으로 전환하는 것이 좋습니다(값이 리소스 경로가 아닌 아이콘의 이름이므로 더 간단함).AlternativeAppIcons
항목 그룹을 사용하여 프로젝트 파일에 대체 아이콘을 추가합니다.<ItemGroup> <AlternativeAppIcon Include="AlternativeAppIcons" /> </ItemGroup>
앱의 아이콘 관리
.NET 프로젝트에 포함된 아이콘 이미지를 사용하여 개발자는 앱의 아이콘을 제어하는 다음과 같은 방법을 사용할 수 있습니다.
UIApplication 클래스의 SupportsAlternateIcons 속성을 통해 개발자는 앱이 대체 아이콘을 지원하는지 확인할 수 있습니다. 예를 들어:
// Can the app select a different icon?
primaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
alternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
UIApplication 클래스의 ApplicationIconBadgeNumber 속성을 사용하면 개발자가 Springboard에서 앱 아이콘의 현재 배지 번호를 얻거나 설정할 수 있습니다. 기본값은 0입니다. 예를 들어:
// 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 ())}");
}
메모
iOS에서는 UNUserNotificationCenter.SetBadgeCount
에 대해 사용자 권한이 필요하며, 이는 배지 수를 설정하기 전에 UNUserNotificationCenter.Current.RequestAuthorization
을 호출하여 획득할 수 있습니다.
UIApplication 클래스의 AlternateIconName 속성을 사용하면 개발자가 현재 선택한 대체 앱 아이콘의 이름을 가져올 수 있으며 앱에서 기본 아이콘을 사용하는 경우 null
반환합니다. 예를 들어:
// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;
if (name != null ) {
// Do something with the name
}
UIApplication 클래스의 SetAlternameIconName 속성을 사용하면 개발자가 앱 아이콘을 변경할 수 있습니다. 아이콘의 이름을 전달하여 선택하고 null
를 사용하여 기본 아이콘으로 돌아갑니다. 예를 들어:
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 ())}");
});
}
앱이 실행되고 사용자가 대체 아이콘을 선택하면 다음과 같은 경고가 표시됩니다.
앱에서 아이콘 변경할 때 샘플 경고
사용자가 기본 아이콘으로 다시 전환하면 다음과 같은 경고가 표시됩니다.
변경되는 경우 샘플 경고