使用Ionic Framework推送通知

Ari*_*tos 10 push-notification apple-push-notifications ionic-framework

我正试图用Ionic实现Push Notifications,我很困惑.到目前为止,我已经尝试了以下替代方案但没有成功:

离子推

似乎是最好的解决方案.它在浏览器中"模拟"通知,使其易于测试.有两个版本:

  1. 版本1.0:文档可在http://docs.ionic.io/v1.0/docs/push-overview上找到.该页面底部显示警告,说明要检查最新版本(2.0beta).如果我留在页面并尝试按照说明操作,一切似乎都运行正常,但如果我发送推送到https://push.ionic.io/api/v1/push没有消息到达.看看firebug我发现$ ionicPush正在查询2.0alpha API而不是查询1.0 API.

  2. 版本2.0:文档可在http://docs.ionic.io/docs/push-overview上找到.它与1.0非常相似,在浏览器,Android(开发和生产)和iOS开发环境中运行良好.但是,我无法获得有关IOS生产的消息(在将应用程序发布到商店之后).我努力寻找解决方案,但我找到了一些答案,说它是alpha,不应该使用.

因此,如果版本1.0不存在(它使用v2.0 API)并且v2.0是alpha并且不应该使用,我得出结论Ionic Push不能使用.

问题1:可以使用离子推送向iOS和Android发送通知吗?

问题2:使用2.0设置,我可以使用Apns PHP而不是Ionic Push发送消息吗?

Cordova Phonegap插件推送

这个插件是Ionic Push在我猜测的幕后使用的.但是,我无法弄清楚如何使用它.我发现的教程和文档已经过时,并引用了一个已弃用的版本(https://github.com/phonegap-build/PushPlugin.git).甚至ngCordova也引用了这个已弃用的版本(http://ngcordova.com/docs/plugins/pushNotifications/).ngCordova也建议使用Ionic Push.我找不到一个完整的例子,展示如何使用https://github.com/phonegap/phonegap-plugin-push with ionic.

问题3:如何设置Cordova Phonegap Plugin推离子?

Ari*_*tos 1

我能够使用 Google Firebase 和https://github.com/arnesson/cordova-plugin-firebase/使用 Ionic 1 在 IOS 和 Android 上发送/接收推送通知。按照我所做的:

  1. 在developer.apple.com 上创建DEV/PROD 配置文件。创建配置文件时检查了我的开发人员/团队证书。
  2. 在developer.apple.com 上创建DEV/PROD APS 证书。
  3. 在开发机器上安装了开发人员/团队证书。
  4. 在开发计算机上安装了 DEV/PROD APS 证书。
  5. 在开发机器上安装了配置文件。
  6. 安装了带有“cordova插件添加cordova-plugin-firebase@0.1.14”的插件。
  7. 向我的应用程序添加了代码:

    window.FirebasePlugin.grantPermission(); window.FirebasePlugin.getInstanceId( function(token) { thiss.saveToken(token); }, function(error) { console.log(error); } );

    window.FirebasePlugin.onNotificationOpen( function(notification) {
    //alert("是的!"); }, function(error) { //alert("Error"); } );

  8. 创建了 Google GCM/Google Firebase 帐户。

  9. 使用 iOS/Android 平台将我的应用程序添加到 Firebase。
  10. 将 APS 证书添加到 Firebase 项目设置的“云消息传递”部分。
  11. 下载 GoogleService-Info.plist 和 google-service.json 并将它们放在我的应用程序根文件夹中。
  12. 构建了应用程序。
  13. 仅限 IOS:在 XCode 中启用“推送通知”和“后台模式:接收通知”。

为了发送通知,我使用以下 php 脚本:

$data = Array
(
    [to] => <token>
    [priority] => high
    [notification] => Array
        (
            [title] => My Title
            [text] => Notification test
            [sound] => default
            [vibrate] => 1
            [badge] => 0
        )

)

$jsonData = json_encode($data);
$ch     = curl_init("https://fcm.googleapis.com/fcm/send");
$header = array(
  'Content-Type: application/json',
  "Authorization: key=".$gcmApiKey
);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

$result = curl_exec($ch);
curl_close($ch);

echo $result;
Run Code Online (Sandbox Code Playgroud)