在Unity项目中无法通过FCM接收iOS LocalNotifications

时间:2018-08-17 06:03:43

标签: ios firebase unity3d firebase-cloud-messaging

我想在一个 iOS Unity项目中使用FCM(Firebase云消息传递)和LocalNotifications。 但是我无法收到有关打开LocalNotifications的回调。

首先,我为FCM进行了回调。

void Start() {
    FirebaseMessaging.MessageReceived += (sender, args) => {
        Debug.Log("Received FCM: " + args.Message.Notification.Body);
    };
}

第二,我为LocalNotifications进行了回调。

void Update() {
    if (UnityEngine.iOS.NotificationServices.localNotificationCount > 0) {
        foreach (var n in UnityEngine.iOS.NotificationServices.localNotifications) {
            Debug.Log("Received LocalNotification: " + n.alertBody);
        }
        // and clear local notifications
    }
}

最后,我在暂停应用程序时发出了LocalNotification。

void OnApplicationPause(bool paused) {
    if(paused) {
        var n = new UnityEngine.iOS.LocalNotification();
        n.alertAction = "Test";
        n.alertBody = "This is a test message.";
        n.fireDate = DateTime.Now.AddSeconds(10);
        UnityEngine.iOS.NotificationServices.ScheduleLocalNotification(n);
    }
}

在应用程序处于后台状态时打开LocalNotification消息后,NotificationServices.localNotificationCount始终为零,因此从未调用Received LocalNotification

但是尽管进行了LocalNotification,仍调用了Received FCM,并且MessageReceivedEventArgs.Message.RawData是空字符串。 我在下面的NotificationManager.MessageRecieved中收到一条错误消息。

ERROR: ret == 0 || ret == 22
NullReferenceException: A null value was found where an object instance was required.

我想FCM SDK不仅接收远程通知的回调,还接收本地通知的回调。 因此,我无法收到LocalNotifications的任何回调。

我不知道要解决这个问题。有人有不错的解决方案吗?


Unity 2018.1.0f2,Firebase Unity SDK 5.2.1,Xcode 9.4.1,iOS 11.4

0 个答案:

没有答案