通过CLI功能将推送通知发送到iOS

时间:2020-07-11 05:34:08

标签: ios flutter push-notification google-cloud-functions apple-push-notifications

我正在尝试使用CLI函数向Android和iOS设备发送推送通知。当我使用iOS版本时,从我的函数发送时没有收到通知。但是,当我从Firebase控制台发送它们时,它将仅在打开应用程序时收到通知。我以为我缺少设置中的一个或多个关键步骤,或者我的功能在有效负载中没有所有需要的数据。

我的功能发送如下:

return Promise.all([token]).then(result=>{

             const payload = {
                 notification: {
                     title : likename + " liked your post!",
                     "priority" : "high"
                 }
             };
              console.log(token);

             return admin.messaging().sendToDevice(token,payload);
    });

我为我的iOS应用程序设置了证书,并实现了我的APP委托,如下所示:

import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
    
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    
    if #available(iOS 10.0, *) {
      // For iOS 10 display notification (sent via APNS)
      UNUserNotificationCenter.current().delegate = self

      let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
      UNUserNotificationCenter.current().requestAuthorization(
        options: authOptions,
        completionHandler: {_, _ in })
    } else {
      let settings: UIUserNotificationSettings =
      UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
      application.registerUserNotificationSettings(settings)
    }

    application.registerForRemoteNotifications()

    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

我们非常感谢您的帮助,如果您需要其他信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

经过数小时的反思,我意识到我只实现了响应onLaunch或onResume版本的代码。我不得不在我的代码中实现这些方法,然后成功了。