0

プッシュ通知アラート本文の取得方法に問題があります。

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

 NSLog(@"Received notification: %@", userInfo);

 }

ただし、正しい通知値を返します。

私のNSLog

2013-08-06 05:58:29.340 CareProject[4477:907] Received notification: {
aps =     {
alert = "Are you available to visit Facility 1?";
badge = 1;
sound = default;
};

}

アラート本文を取得する方法がわかりません。「施設 1 を訪問できますか?」String 経由で保存し、ViewController.m のラベルに表示したいと考えています。私を助けてください。

4

3 に答える 3

3

簡単にアクセスできます:

[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]
于 2013-08-05T22:35:29.403 に答える
1

ここから: iOS Developer Lib

userInfo ディクショナリには、値が別のディクショナリであるaps キーが含まれています。aps ディクショナリの情報は必要ありませんが、次のキーを使用して内容を取得できます。

alert — 値は、アラート メッセージの文字列、または body と show-view の 2 つのキーを持つ辞書です。body キーの値はアラート メッセージを含む文字列で、show-view キーの値はブール値です。show-view キーの値が false の場合、アラートの [表示] ボタンは表示されません。デフォルトでは、ユーザーがタップするとアプリケーションを起動する [表示] ボタンが表示されます。

したがって、基本的に、次のことを行う必要があります。

NSDictionary *apsDict = [userInfo objectForKey:@"aps"]; 
if (apsDict != nil) {
    id alertObj = [apsDict objectForKey:@"alert"];
    if ([alertObj isKindOfClass:[NSString class]] == YES) {
        NSString *alert = alertObj;
        if ([alert length] > 0) {
            // use alert as NSString
        }
    }
}
于 2013-08-05T22:47:13.617 に答える