2017-09-21 36 views
18

Tôi đang phát triển một ứng dụng sử dụng thông báo đẩy Firebase. Nó hoạt động tốt cho đến khi tôi thử trong iOS 11. Sử dụng một chiếc iPhone với ios 11 thông báo không đến. Đây là mã của tôi:Thông báo Firebase không hoạt động trong iOS 11

- (void)application:(UIApplication *)application 
    didReceiveRemoteNotification:(NSDictionary *)userInfo 
    fetchCompletionHandler:(void (^) 
    (UIBackgroundFetchResult))completionHandler { 
     //Manage notification 
    } 

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
    willPresentNotification:(UNNotification *)notification 
    withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler{ 
    //Manage notification 
} 

Không có phương pháp nào được gọi.

Cảm ơn sự giúp đỡ!

+0

Tôi đang gặp một vấn đề trên iOS 11 là tốt. Tôi không có một thiết bị iOS 10 để kiểm tra để xác nhận nó là một vấn đề hệ điều hành nhưng đẩy đã làm việc bây giờ nó không phải là. Tôi có thể nhận được thông báo khi gọi trực tiếp máy chủ APN để có thể có lỗi về Firebase. Tôi đã liên hệ để hỗ trợ và cho bạn biết nếu tôi nghe lại. – Jeremiah

+0

Có thể do Firebase gây ra, có thể họ sẽ cập nhật sớm .. Cảm ơn câu trả lời @Jeremiah –

+0

Liên quan đến https://stackoverflow.com/questions/45356479/firebase-root-view-controller-not-found-warning? – lal

Trả lời

12

Đây là vấn đề với Firebase. Nó dường như liên quan đến bản cập nhật gần đây của họ thay vì iOS 11. Họ đang làm việc để sửa chữa nó.

Trong thời gian chờ đợi nếu bạn thêm pod 'FirebaseInstanceID', '2.0.0' vào tệp podfile của bạn, nó sẽ sửa lỗi đó.

Bạn có thể đọc thêm ở đây: https://github.com/firebase/quickstart-ios/issues/327#issuecomment-332655731

+0

Ok cảm ơn. Tôi sẽ giữ cho nó mở anyway cho đến khi chúng tôi nhận được bản cập nhật từ firebase, sau đó tôi sẽ cung cấp cho bạn câu trả lời nếu bạn cập nhật nó. Bằng cách này, chúng tôi có thể giữ giải pháp đúng ở đây. –

+1

Đã giúp tôi. Nhưng phải là pod 'FirebaseInstanceID', '2.0.0' –

+0

Điều này chắc chắn sẽ giải quyết được vấn đề. Cảm ơn bạn đời. –

1

Bạn cần phải thực hiện UNUserNotificationCenterDelegate

extension AppDelegate: UNUserNotificationCenterDelegate { 
     func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { 
      completionHandler(.alert) 
     } 
    } 

và đặt nó vào UNUserNotificationCenter đối tượng bên trong didFinishLaunchingWithOptions

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     UNUserNotificationCenter.current().delegate = self 
     return true 
} 
+0

Điều này không có tác dụng đối với tôi, thông báo vẫn ổn trong mọi hệ điều hành khác, ngoại trừ iOS 11 – Velix007

+1

Vâng tôi cũng đã làm điều đó, tôi không nói điều đó trong bài đăng, lỗi của tôi ... –

+0

Vì tôi không làm việc trong thông báo IOS 11 –

0

Kiểm tra này trong khả năng dự án của bạn. Nó đã giúp tôi) enter image description here

+0

Tôi đã có tùy chọn đó. Tôi không nghĩ rằng đó là về xcode nhưng về firebase. –

+0

@ JaimeAlcántaraArnela Hmm, nó hoạt động tốt cho tôi bây giờ cho iOS 10-11. Bạn đã kiểm tra [ví dụ] này (https://github.com/firebase/quickstart-ios/blob/master/messaging/MessagingExampleSwift/AppDelegate.swift)? Tôi nghĩ rằng vấn đề có thể được thực hiện của bạn. – Artfintch

0

Bạn có thể thử này

Messaging.messaging().delegate = self 
    Messaging.messaging().shouldEstablishDirectChannel = true 
+0

Xin lỗi, giải pháp kỷ niệm của tôi không thực sự là giải pháp. Tin nhắn vừa đến khi ứng dụng đang hoạt động. –

Các vấn đề liên quan