iOS推送通知消息 - 单击VIEW按钮后的操作

时间:2012-06-15 08:30:36

标签: php ios push-notification push apple-push-notifications

我在推送通知方面遇到了一些问题。我可以将它们发送到我注册的设备。一切正常。

我的问题是: 单击VIEW按钮后,应用程序即将启动。目前没有任何内容。

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

例如: 我的推送通知是关于NEWS Number 1 - 然后在点击VIEW之后我应该获得有关NEWS Number 1的更多信息

依旧......

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

你理解,我的意思是什么?

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

感谢。

3 个答案:

答案 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永远不会被释放。