5

プッシュ通知メッセージからデータを取得したい。アプリがフォアグラウンドとバックグラウンドにあるときにデータを正常に取得できます。しかし、アプリを終了し、ユーザーがプッシュ通知で表示ボタンを押すと、データを取得できません。アプリのコードを書いたら起動完了。このコードにより、プッシュ通知メッセージの [表示] ボタンを押すとアプリがクラッシュします。コードにコメントすると、アプリはクラッシュしません。アプリが終了し、ユーザーがプッシュ通知の表示ボタンを押したときに、プッシュ通知からデータを取得するのを手伝ってください。本当に感謝します。

if(launchOptions != nil){
        NSDictionary *tmpDic = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (tmpDic!=nil) {
            pushedMessage=[NSString stringWithFormat:@"%@",[[tmpDic objectForKey:@"aps"] objectForKey:@"alert"]];
            pushedCountry=[NSString stringWithFormat:@"%@",[tmpDic objectForKey:@"country"]];
            [self saveToDatabase];
        }
    }
4

5 に答える 5

1

iOS7 から、アプリがバックグラウンドにある場合や実行されていない場合にプッシュ通知を処理するための以下のデリゲート メソッドがあります。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler 
于 2015-05-08T11:39:37.363 に答える
0

表示ボタンをクリックすると

- (void)application:(UIApplication*)application didReceiveRemoteNotification:      (NSDictionary*)userInfo
{
}

このメソッドが呼び出され、userinfo にすべてのデータが含まれます

didfinishlaunchメソッドで行っていることは、 didReceiveRemoteNotification で行います。

于 2012-07-18T11:50:44.303 に答える
0

私はあなたが何を求めているのか完全には理解していませんが、アプリデリゲートの関数を使用してプッシュされているものを処理できます

- (void)application:(UIApplication*)application didReceiveRemoteNotification: 
(NSDictionary*)userInfo
{
NSLog(@"Received notification: %@", userInfo);
[self addMessageFromRemoteNotification:userInfo updateUI:YES];
}

これで、そのデータをコア データまたは sqlite に追加できます。これはあなたの質問とは関係ないかもしれませんが、あなたが質問で尋ねたことに基づいて私が与えることができる最高のものです.

于 2012-05-20T13:02:07.387 に答える