アプリで通知の受信を処理しようとしていますが、実際にはうまくいきません。
使用する場合didReceiveLocalNotification:(UILocalNotification *)notification
。アプリの入力に使用した通知を問題なく受信して使用できます
ただし、この関数は、アプリがすでに実行されている場合にのみ起動されます(アクティブ、非アクティブ、バックグラウンド、場合によっては一時停止されていますが、まだ試していません)。
これで、UILocalNotificationを返す関数didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
を使用できるようになりました。[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]
ただし、実行されていない状態からアプリを起動した場合、このイベントは発生しません。その後、LocalNotificationによってアプリが開きますが、使用できません。
さて、私の質問は、アプリが実行されていない状態のときに通知から、アプリの起動時に通知を受信して処理できるようにするにはどうすればよいですか?私がここで間違っていることはおそらくありますか?
これが私のアプリのサンプルコードです。
まず、didFinishLaunchingWithOptions
残念ながら機能しない機能です。関数[sharedLocalNotificationsInstance processNotification:notification]
が起動されることはありません...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
LocalNotificationsController *sharedLocalNotificationsInstance = [LocalNotificationsController sharedLocalNotificationsInstance];
[sharedLocalNotificationsInstance checkNotifications];
UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if ( notification != nil ) {
// Process the received notification
[sharedLocalNotificationsInstance processNotification:notification];
application.applicationIconBadgeNumber = 0;
}
return YES;
}
そして2番目のコード:didReceiveLocalNotification関数は完全に機能します:通知を受け取り、[sharedLocalNotificationsInstance processNotification:notification]は完全に機能します。
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
// Used when the application launches from a notification
LocalNotificationsController *sharedLocalNotificationsInstance = [LocalNotificationsController sharedLocalNotificationsInstance];
// Process the received notification
[sharedLocalNotificationsInstance processNotification:notification];
}