0

在问这个问题之前,我已经进行了足够的研究。
我与GCM[Google Cloud Messaging]合作推送通知

这是我从 GCM 发送的消息

{
"to" : "....",
"notification": {
"sound": "default",
"badge": "1",
"title": "A Message Received",
"body": "Please open messages",
},
"content_available":true,
"priority": "high",
"data":{
"message":"heey"
}
}

正如我从其他网站上读到的,它告诉您是否想要一个静默通知,将 content_available 放在标题中,它会正常工作。
一切都很好,并使用这种方法。
但唯一的问题是当应用程序被用户强制关闭时。它无法处理中的代码

func application( application: UIApplication,
    didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
    fetchCompletionHandler handler: (UIBackgroundFetchResult) -> Void) {
}

在其他有答案的问题中说没有解决方案。除了 IOS 8 中的 pushkit。

有人告诉这个链接可以提供帮助: https
://zeropush.com/guide/guide-to-pushkit-and-voip 但我无法使用它。有些步骤不清楚。

我的要求是是否有人知道 PushKit 框架的最佳解决方案或一段代码或任何可以帮助我的东西。

4

1 回答 1

0

方法:

func application( application: UIApplication,
     didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
            fetchCompletionHandler handler: (UIBackgroundFetchResult) -> Void) {
}

如果应用程序被暂停并在后台运行。该方法适用于 iOS 7 及更高版本。当应用程序未运行时didFinishLaunchingWithOptions被调用。您可以在此方法中执行以下操作:

 UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (notification) {
    NSLog(@"app recieved notification from remote%@",notification);
    [self application:application didReceiveRemoteNotification(NSDictionary*)notification];
}else{
    NSLog(@"app did not recieve notification");
}

如此处找到:检测应用程序是否从推送通知启动/打开

对于 iOS 8 PushKit 中的 VoIP 推送,首先您需要创建证书。这个例子帮助我检查了它:https ://www.sinch.com/tutorials/ios8-apps-and-pushkit/ 这真的很简单。

于 2015-11-10T14:57:25.327 回答