3

アプリが開いているときにを使用する UILocalNotification と、アプリデリゲートのこの関数が起動されます。

 - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{

しかし、アプリが近くにあり、バックグラウンドにない場合、通知マッサージを押すとアプリが起動しますが、このメソッドは起動しません。

彼女は私を別のシーンに連れて行ってくれるので、私はそれを発射する必要があります-誰かが通知を受け取ったときに私が提示する必要があります。

彼女がバックグラウンドにいるときにのみ機能します。

4

2 に答える 2

6

を実装する必要がありますapplication:didFinishLaunchingWithOptions:。通知はオプションの1つになります。

- (BOOL)application:(UIApplication *)application 
  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (notification) {
        // handle your notification here.
    }
}
于 2012-08-28T15:24:50.183 に答える
5

仕様から:

If the action button is tapped (on a device running iOS), the system 
launches the application and the application calls its delegate’s    
application:didFinishLaunchingWithOptions: method (if implemented); it passes 
in the notification payload (for remote notifications) or the local-notification 
object (for local notifications).

言い換えれば、application:didReceiveLocalNotificationあなたが見つけたように、アプリが実行されているときだけです。

ローカル(またはリモート)通知のためにアプリが起動された場合、通知からの商品がapplication:didFinishLaunchingWithOptions:メソッドに渡され、そこでキャッチされます。

于 2012-08-28T15:28:11.120 に答える