1

Я пытаюсь внедрить уведомление Firebase Push в мое приложение IOS, но не могу понять, как получать уведомления, когда приложение находится в фоновом режиме.Push notificaiton не отображается, когда приложение находится в фоновом режиме

Я использовал печать для отображения уведомления, но она только печатает уведомление при открытии приложения. Если я отправляю уведомление, когда приложение не работает, ничего не происходит, но сообщения печатаются, как только я снова открываю приложение.

Ниже мой AppDelegate Код

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    registerForPushNotifications(application) 
    FIRApp.configure() 

    // Add observer for InstanceID token refresh callback. 
    NSNotificationCenter 
     .defaultCenter() 
     .addObserver(self, selector: #selector(AppDelegate.tokenRefreshNotificaiton), 
        name: kFIRInstanceIDTokenRefreshNotification, object: nil) 

    // Override point for customization after application launch. 
    return true 
} 

func registerForPushNotifications(application: UIApplication) { 
    let settings: UIUserNotificationSettings = 
     UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
    application.registerUserNotificationSettings(settings) 
    application.registerForRemoteNotifications() 
} 


func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 
    sendNotification(); 

    print("===== didReceiveRemoteNotification ===== %@", userInfo) 
} 




func tokenRefreshNotificaiton(notification: NSNotification) { 
    let refreshedToken = FIRInstanceID.instanceID().token()! 
    print("InstanceID token: \(refreshedToken)") 
    connectToFcm() 
} 

func connectToFcm() { 
    FIRMessaging.messaging().connectWithCompletion { (error) in 
     if (error != nil) { 
      print("Unable to connect with FCM. \(error)") 
     } else { 
      print("Connected to FCM.") 
     } 
    } 
} 
func sendNotification() { 
    let notification = UILocalNotification() 
    let dict:NSDictionary = ["ID" : "your ID goes here"] 
    notification.userInfo = dict as! [String : String] 
    notification.alertBody = "title" 
    notification.alertAction = "Open" 
    notification.fireDate = NSDate() 
    UIApplication.sharedApplication().scheduleLocalNotification(notification) 


} 


} 

Я также добавил к моему info.plist

<key>FirebaseAppDelegateProxyEnabled</key> 
<false/> 
<key>UIBackgroundModes</key> 
<array> 
    <string>remote-notification</string> 
</array> 

Это формат сообщения я посылаю

{ 
    "to" : "", 
    "notification" : { 
    "body" : "", 
    "title" : "", 
}, 
    "content_available": true, 
    "priority": "high" 
} 
+0

Я не знаю, что это firebase полезная нагрузка (которая получает повернут firebase в полезная нагрузка на ядро). Но ключевое слово apple в полезных приложениях приложения доступно для контента, а не для content_available. – Gruntcakes

ответ

-1

Вы не могут получать данные push-уведомления, когда ваше приложение закрывается. Вы должны хранить сообщение на сервер, чем пользователь достигнет к сообщению оттуда

+0

Могу ли я отображать уведомление, когда приложение находится в фоновом режиме? – John

+0

Да, вы можете отображать push-уведомление, когда ваше приложение находится в фоновом режиме – aahmetbas

+0

, можете ли вы объяснить, что я должен сделать для приложения и код выше, потому что он, похоже, не работает. спасибо – John

-1

Убедитесь, что параметры проекта и «Возможности» правильно настроены enter image description here

+0

Да, он настроен правильно, но все еще не работает. Благодарю. – John

+1

Включить возможность выбора фона – Gruntcakes

+0

@Essenceofchicken все еще не работает – John

Смежные вопросы