IONIC 3:无法在IOS的前台接收推送通知

时间:2018-12-14 12:44:12

标签: ios firebase cordova ionic3 cordova-plugin-fcm

我正在研究与购物相关的移动应用程序,并使用Firebase FCM在其中实现了推送通知。一切在android上都能正常工作,并且我收到的代码通知非常好:

app.component.ts

platform.ready().then(() => {
   this.fcm.onNotification().subscribe(data => {
      console.log(data);
   });
});

它成功地在android中显示了通知数据,但是在IOS中,当我按下 php 代码进行通知时,当我的应用程序关闭时,它显示了通知,但是当我已经打开该应用程序时,它没有显示执行this.fcm.onNotification()函数。而且我只是调试了这个问题并注意到了这一点,在我的xcode控制台中它的显示如下:

2018-12-14 18:08:34.299048+0530 BeMeals[1351:322531] 
Warning: Application delegate received call to -application:didReceiveRemoteNotification:fetchCompletionHandler: 
but the completion handler was never called.

php文件

$url = 'https://fcm.googleapis.com/fcm/send';
    $msg = array
    (
     'title'  => 'This is title', // type of notification
     'tickerText' => 'This is message', // message
     'tab' => 'This is tab', // screen to open based on subtitle
     'screen' => "request_list",
     'message'  => 'hey',
     'body' => 'test',
     'vibrate' => 1,
     'sound'  => 1,
     'click_action'=>'FCM_PLUGIN_ACTIVITY'
    );

    $fields = array
    (
     'registration_ids'  => ['my device token'],
     'notification'   => $msg,
     'data' => [
        'test'=>123
     ],
     'priority' => 'high',
     'content_available' => true
    );

    $headers = array
    (
     'Authorization: key=' . self::$API_ACCESS_KEY,
     'Content-Type: application/json'
    );

    $result = self::useCurl($url, $headers, $fields);

任何人都可以告诉我为什么会出现问题以及出了什么问题吗?

1 个答案:

答案 0 :(得分:2)

在Google上的一些RND为自己找到解决方案后,您需要将FCM插件版本降级为1.1.5

cordova-plugin-fcm: "^1.1.5"

将此添加到您的package.json文件中。 希望这也对您有用。