Xamarin.iOS での重要なアラート
iOS 12 では、アプリで重要なアラートを送信できます。 重要なアラートは、応答不可がオンになっているか、着信音スイッチがオフになっているかに関係なく、音を鳴らします。 これらの通知は破壊的で、ユーザーが直ちにアクションを実行する必要がある場合にのみ使用する必要があります。
ユーザー定義の重要なアラートのエンタイトルメント
アプリにクリティカルアラートを表示するには、まず Apple にユーザー定義の重要なアラートのエンタイトルメントを要求します。
Apple からこのエンタイトルメントを受け取り、それを使用するようにアプリを構成する方法に関する関連する手順に従った後、アプリの Entitlements.plist ファイルにユーザー定義のエンタイトルメントを追加します。 次に、シミュレーターとデバイスの両方でアプリに署名する際に Entitlements.plist を使用するように [iOS バンドル署名] オプションを構成します。
承認の要求
アプリの通知承認要求は、ユーザーにアプリの通知を許可するかどうかを要求します。 通知承認要求で重要なアラートを送信するアクセス許可が求められた場合、アプリでユーザーに重要なアラートをオプトインする機会も付与されます。
次のコードは、重要なアラートと標準の通知の両方とサウンドを送信するアクセス許可を要求します。ここでは、UNAuthorizationOptions
値を RequestAuthorization
に渡します:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
UNUserNotificationCenter center = UNUserNotificationCenter.Current;
var options = UNAuthorizationOptions.Alert | UNAuthorizationOptions.Sound | UNAuthorizationOptions.CriticalAlert;
center.RequestAuthorization(options, (bool success, NSError error) => {
// ...
);
return true;
}
ローカルの重要なアラート
ローカルの重要なアラートを送信するには UNMutableNotificationContent
を作成し、その Sound
プロパティを次のいずれかに設定します。
UNNotificationSound.DefaultCriticalSound
は、既定の重要な通知のサウンドを使用します。UNNotificationSound.GetCriticalSound
では、アプリとボリュームにバンドルされているカスタム サウンドを指定できます。
次に、通知コンテンツから UNNotificationRequest
を作成し、通知センターに追加します:
var content = new UNMutableNotificationContent()
{
Title = "Critical alert title",
Body = "Text of the critical alert",
CategoryIdentifier = "my-critical-alert-category",
// Sound = UNNotificationSound.DefaultCriticalSound
Sound = UNNotificationSound.GetCriticalSound("my_critical_sound.m4a", 1.0f)
};
var request = UNNotificationRequest.FromIdentifier(
Guid.NewGuid().ToString(),
content,
UNTimeIntervalNotificationTrigger.CreateTrigger(3, false)
);
var center = UNUserNotificationCenter.Current;
center.AddNotificationRequest(request, null);
重要
重要なアラートは、アプリで有効になっていない場合は配信されません。 アプリが重要なアラートを送信するアクセス許可を初めて要求した場合に表示されるプロンプトと共に、ユーザーは iOS の [設定] アプリの [通知] セクションで重要なアラートを有効または無効にすることもできます。
リモートの重要なアラート
リモートの重要なアラートの詳細については、WWDC 2018 の [ユーザー通知の新機能] セッションと [リモート通知の生成] ドキュメントを参照してください。