5

我对推送通知有一些问题。我可以很好地将它们发送到我注册的设备。一切正常。

我的问题是:点击查看按钮后,应用程序正在启动。暂时没有任何内容。

如何在此处添加内容?此内容应取决于我发出的推送通知。

例如:我的推送通知是关于 1 号新闻的 - 然后点击查看后我应该得到更多关于 1 号新闻的信息

等等...

当从 1 号新闻返回时,还应该可以在列表中读取应用程序中所有以前收到的新闻。

你明白我的意思吗?

我没有任何真正的想法...如果您能向我展示有关示例的代码,那就太好了。

谢谢。

4

3 回答 3

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

于 2012-06-15T08:52:27.530 回答
1

如果当用户点击视图按钮时您的应用程序不在后台,application:didFinishLaunchingWithOptions:则调用。该方法的第二个参数中的字典包含有关启动原因(直接、来自推送或本地通知等)和通知内容的信息。

如果您的应用程序已经在后台,application:didReceiveRemoteNotification:则在唤醒时调用。同样,第二个参数是一个包含通知内容的字典。

于 2012-06-15T08:52:16.377 回答
0

生成通知的 UUID 时出错。必须使用 __bridge_transfer 或 CFBridgingRelease,而不是使用 __bridge;否则 CFStringRef 将永远不会被释放。

于 2013-01-30T14:45:54.543 回答