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