【发布时间】:2017-08-01 14:31:39
【问题描述】:
我正在尝试使用 phonegap-plugin-push with @ionic-native/push plugin 使 Firebase 推送通知在 IONIC 3 上工作
这是我的离子信息
全局包:
Cordova CLI : 7.0.1
本地包:
@ionic/app-scripts : 2.1.3
Cordova Platforms : android 6.2.3 ios 4.4.0
Ionic Framework : ionic-angular 3.6.0
系统:
Android SDK Tools : 25.2.2
Node : v8.1.3
OS : macOS Sierra
Xcode : Xcode 8.3.3 Build version 8E3004b
ios-deploy : 1.9.1
ios-sim : 6.0.0
npm : 5.1.0
我无法理解 create 如何创建通知对象服务器站点以使通知在 iOS 和 Android 中都能正常工作。 我阅读了 通知和数据负载 的所有差异,然后我无法理解该对象必须如何在所有平台和所有应用程序状态(背景和前景)下工作。
这是我的初始对象
$p = array(
'id' => $post['id'],
'title' => $post['title'],
'description' => $post['description'],
'text' => $post['text'],
'image_url' => $post['image_url']
);
$msg = array(
'title' => "test",
'body' => $post['title'],
'post' => $p,
'vibrate' => 1,
'sound' => "default"
);
$fields = array();
$fields['to'] = "/topics/news";
$fields['data'] = $msg;
$fields["notification"] = array('title' => 'test', 'body' => $post['title'], 'sound' => 1);
所以我尝试将数据和通知负载放在一起 结果是
- Android 前台 ->收到通知,我可以转到详细信息页面
- Android 背景 -> 通知已到达,但未调用 on('notification'),因此我无法浏览详细信息页面
- iOS 前台 -> 通知到达,我可以进入详细页面
- iOS 后台 -> 通知到达,我可以进入详细页面
唯一的问题是无法在后台控制 Android。
如果我在 Android 上仅使用 数据负载 一切正常(可以在后台和前台转到详细信息页面),但在 iOS 上根本不会收到通知。
如果我只使用通知负载,通知会到达 Andorid 和 iOS,但没有数据负载,所以我的应用不会转到详细信息页面。
我的问题是: 我应该发送什么样的对象才能让 iOS 和 Android 在前台和后台工作??
【问题讨论】:
标签: android firebase-cloud-messaging ionic3 phonegap-pushplugin ionic-native