4

次の内容でユーザーにプッシュペイロードを送信しています:

{"aps": {"alert": "Go To Google", "sound": "Default","url":"http://www.google.com"}}

ppが実行されているがバックグラウンドで実行されている場合、すべてがうまくいきます。プッシュを受信して​​いてアプリが閉じられている場合、アプリを開いても何も起こりません。ペイロードでこの URL にリダイレクトしようとしています。アプリがバックグラウンドから実行されている場合も、うまくいきます。

これはこれまでの AppDelegate.m の実装です。

-(void)Redirect:(NSString*)url{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 
    NSLog(@"%@",url);
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {    
    RedirectedUri = [[userInfo objectForKey:@"aps"] objectForKey:@"url"];
    NSLog(@"%@",RedirectedUri);
    [self Redirect:RedirectedUri];    
  }

助けが必要です。

4

1 に答える 1

10

さらに、コードに次を追加します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self applicationDidFinishLaunching:application];

    if (launchOptions != nil)
    {
        NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (dictionary != nil)
        {
            RedirectedUri = [[dictionary objectForKey:@"aps"] objectForKey:@"url"];
            [self Redirect:RedirectedUri];
        }
    }
    return YES;
}
于 2012-06-11T11:49:00.467 に答える