はい、もちろん可能です。ただし、プッシュ通知で大量のコンテンツを送信することはできません。v プッシュ通知は、合計で最大 256 バイトにすることができます。
できることは、通知の userInfo にデータを追加し、ID をリンクすることです。次に、ユーザーがアプリを開いた後、アプリは通知内の ID を解析してサーバーからコンテンツをフェッチします。
ユーザーが通知をクリックしたときにアプリが実行されていない場合
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if (remoteNotif) {
///Handle the notification
}
/* Your regular init */
return YES;
}
アプリが実行されている場合、このメソッドが呼び出されます。
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
///Handle the notification
}
で、NSDictionary
通知メッセージと、通知に追加したその他のデータを取得できます。
--
プッシュ通知の Userinfo 部分は単なる JSON であり、通知ペイロードです。
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9,
"sound" : "bingbong.aiff"
},
"acme1" : "bar",
"acme2" : 42
}
この Apple の例aps
では、JSON の一部で、バッジ アイコンに 9 と「メールを受け取りました」と表示するようにアプリに指示しています。メッセージテキストとして。この通知を受け取ると、システムはbingbong.aiff
サウンドのアプリ バンドルを調べ、見つかった場合はそれを再生します。
その他のキーはamce1
、amce2
通知とともに送信され、プッシュ通知である辞書からアクセスできます。