iOS 10:在后台接收远程通知

时间:2017-07-22 22:26:22

标签: ios swift ios10 unusernotificationcenter remote-notifications

我正在实施FCM推送通知。

App在前台时收到通知。
但是我没有在后台获得通知。

在服务器端,我设置了content-available =>真

在iOS 10上,我应该实现任何其他方法,还是在哪里获得后台通知?

@available(iOS 10.0, *)
func userNotificationCenter(center: UNUserNotificationCenter, willPresentNotification notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void)
{
    print("userNotificationCenter : Forground")

    completionHandler([.Alert,.Sound,.Badge])
}

@available(iOS 10.0, *)
func userNotificationCenter(center: UNUserNotificationCenter, didReceiveNotificationResponse response: UNNotificationResponse, withCompletionHandler completionHandler: () -> Void)
{
    //Code Todo After User presess notification
}

PHP服务器有效负载代码:

$payloadFeild = array(
        'registration_ids' => $gotoFcmUidVar,
        'data' => array('MsgKey'=>json_encode($fcmMsgVar)),
        'content_available' => true,
        'priority' => 'high'
    );

1 个答案:

答案 0 :(得分:1)

经过两个月的努力,我终于通过添加两件事来解决这个问题:
这在所有文档中都缺失,并且是为了帮助所有我不想像我一样挣扎的人

| * |尝试1):对于Ios 10后台通知,在AppDeligate中添加以下deligate方法:

func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings)
{
    application.registerForRemoteNotifications()
}
  

https://codentrick.com/firebase-cloud-messaging-ios/

获得此解决方案

| * |尝试2):如果使用Firebase:在“info.plist”中设置一个值
物业清单查看:

FirebaseAppDelegateProxyEnabled -> NO

源代码视图:

<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

我刚才提到了FirebaseAppDelegateProxyEnable。所以要小心拼写。