我在推送通知方面遇到了一些问题。我可以将它们发送到我注册的设备。一切正常。
我的问题是: 单击VIEW按钮后,应用程序即将启动。目前没有任何内容。
我如何在此处添加内容?此内容应取决于我发送的推送通知。
例如: 我的推送通知是关于NEWS Number 1 - 然后在点击VIEW之后我应该获得有关NEWS Number 1的更多信息
依旧......
当从第1号新闻回来时,应该可以在列表中阅读应用程序中以前收到的所有新闻。
你理解,我的意思是什么?
我没有任何真正的想法......如果您能向我展示一个关于示例的代码,那就太好了。
感谢。
答案 0 :(得分:9)
只需实施以下代码即可:
// will be called if the app was not active
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self applicationDidFinishLaunching:application];
if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (dictionary != nil)
{
// get the necessary information out of the dictionary
// (the data you sent with your push message)
// and load your data
}
}
return YES;
}
// will be called when in foreground
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// get the necessary information out of the dictionary
// (the data you sent with your push message)
// and load your data
}
您可以在此处找到有关APNS的知名教程:http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2
答案 1 :(得分:1)
如果用户点按查看按钮后您的应用不在后台,则会调用application:didFinishLaunchingWithOptions:
。方法的第二个参数中的字典包含有关启动原因(直接,推送或本地通知等)以及通知内容的信息。
如果您的应用已在后台,则会在唤醒时调用application:didReceiveRemoteNotification:
。同样,第二个参数是包含通知内容的字典。
答案 2 :(得分:0)
生成通知的UUID时出错。您必须使用__bridge_transfer或CFBridgingRelease,而不是使用__bridge;否则CFStringRef永远不会被释放。