是的,这当然是可能的。但是您不能通过推送通知发送大量内容。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,即 Notification Payload。
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9,
"sound" : "bingbong.aiff"
},
"acme1" : "bar",
"acme2" : 42
}
这个来自 Apple 的示例,aps
JSON 的一部分告诉应用程序在徽章图标中显示 9 和“你收到了你的电子邮件”。作为消息文本。收到此通知后,系统会在应用程序包中查找bingbong.aiff
声音,如果找到则播放。
其他键amce1
与amce2
通知一起发送,您可以从作为推送通知的字典中访问。