Ionic framework 使用离子框架推送通知

Ionic framework 使用离子框架推送通知,ionic-framework,push-notification,apple-push-notifications,Ionic Framework,Push Notification,Apple Push Notifications,我试图用Ionic实现推送通知,但我很困惑。到目前为止,我已经尝试了以下替代方案,但没有成功: 离子推力 似乎是最好的解决办法。它“模拟”浏览器中的通知,使测试变得简单。有两个版本: 1.0版:文件可在以下位置获取:。页面底部显示一条警告,表示要检查最新版本(2.0beta)。如果我保持在页面中并尝试按照说明操作,一切似乎都很好,但如果我发送推送消息,则没有消息到达。查看firebug,我发现$ionicPush正在查询2.0alpha API,而不是查询1.0API 版本2.0:可在以下位置获

我试图用Ionic实现推送通知,但我很困惑。到目前为止,我已经尝试了以下替代方案,但没有成功:

离子推力

似乎是最好的解决办法。它“模拟”浏览器中的通知,使测试变得简单。有两个版本:

  • 1.0版:文件可在以下位置获取:。页面底部显示一条警告,表示要检查最新版本(2.0beta)。如果我保持在页面中并尝试按照说明操作,一切似乎都很好,但如果我发送推送消息,则没有消息到达。查看firebug,我发现$ionicPush正在查询2.0alpha API,而不是查询1.0API

  • 版本2.0:可在以下位置获取文档:。它与1.0非常相似,在浏览器、Android(开发和生产)和iOS开发环境中运行良好。但是,我无法在IOS产品上获取消息(在将应用程序发布到商店之后)。我努力寻找解决方案,但我发现一些答案说它是alpha,不应该使用

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

    问题1:是否可以使用ionic push向iOS和Android发送通知

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

    Cordova Phonegap插件推送

    我想这个插件是爱奥尼亚推在幕后使用的。但是,我不知道如何使用它。我发现的教程和文档已经过时,并且引用了不推荐的版本()。甚至ngCordova也引用了这个不推荐的版本()。ngCordova也提出了离子推力。我找不到一个完整的例子说明如何使用离子


    问题3:如何使用ionic设置Cordova Phonegap插件推送?

    我还没有使用ionic推送,所以我只能尝试回答您的第三个问题

    事实上,我认为GitHub插件页面上的示例非常好,所以我将参考这些示例。如果您有任何进一步的问题,请随时发表评论,我将详细说明

    首先,将index.html包含在
    deviceready
    侦听器回调中,并使用您的设置初始化插件。在注册事件处理程序中,您可以通过
    data.registrationId
    获取当前用户的设备ID,您可以将其保存在数据库中


    为了实际发送推送消息,我使用(Android)和(iOS)服务器端。还有一些很好的例子,至少在Android上是这样。

    我已经为此奋斗了几天,直到我发现这本指南似乎非常有用:

    希望这也能帮助别人


    这是cordovaPushv5的非官方文档,请参见此处的实际实现:

    我能够使用Google Firebase和Ionic 1在IOS和Android上发送/接收推送通知。 按照我所做的:

  • 在developer.apple.com上创建了DEV/PROD配置文件。在创建配置文件时检查了我的开发人员/团队证书
  • 在developer.apple.com上创建了DEV/PROD-APS证书
  • 已在开发人员计算机上安装开发人员/团队证书
  • 在开发人员计算机上安装了开发人员/产品APS证书
  • 在开发人员计算机上安装了provisionig配置文件
  • 已安装带有“cordova插件添加cordova插件”的插件-firebase@0.1.14“
  • 已将代码添加到我的应用程序:

    window.FirebasePlugin.grantPermission(); window.FirebasePlugin.getInstanceId( 功能(令牌){ 这是saveToken(token); }, 函数(错误){ console.log(错误); } );

    window.FirebasePlugin.onNotificationOpen( 功能(通知){
    //警惕(“耶!”); }, 函数(错误){ //警报(“错误”); } );

  • 创建了Google GCM/Google Firebase帐户

  • 使用iOS/Android平台将我的应用程序添加到Firebase
  • 将APS证书添加到firebase项目设置的“云消息传递”部分
  • 下载GoogleService-Info.plist e google-service.json并将它们放在我的应用程序根文件夹中
  • 构建应用程序
  • 仅限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;
    
    $data=Array
    (
    [至]=>
    [优先级]=>高
    [通知]=>阵列
    (
    [标题]=>我的标题
    [文本]=>通知测试
    [声音]=>默认值
    [振动]=>1
    [徽章]=>0
    )
    )
    $jsonData=json_encode($data);
    $ch=curl_init(“https://fcm.googleapis.com/fcm/send");
    $header=数组(
    '内容类型:application/json',
    “授权:密钥=”.$gcmApiKey
    );
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    卷曲设置($ch,卷曲设置桩,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$jsonData);
    $result=curl\u exec($ch);
    卷曲关闭($ch);
    回声$结果;
    
    本教程将帮助您了解我的工作原理。本教程也适用于我。但他们没有提到iOS,这正是我遇到的问题。我试图使用示例脚本,但出现了“PushNotification undefined”错误。所以我想有必要在index.html中包含“www/push.js”文件,但我不确定。你能给出一个完整的例子吗?@ArivanBastos不,你不需要包含任何插件源,这是由Cordova自动完成的。您是否在index.html中包含了
    ?是的,我包含了!但在浏览器中运行应用程序时会出现“未定义”错误。这是有道理的,因为推送通知在浏览器中不可用,但直到现在,我在开发ionic应用程序时,甚至在使用本机应用程序时,都没有遇到浏览器错误