web-dev-qa-db-ja.com

ionicモバイルアプリからプッシュ通知を送受信する方法は?

Ionicフレームワーク(コルドバ上)を使用して構築されたメッセージングアプリがあります。これをAndroid向けに構築する予定で、JavaScriptを使用してアプリからプッシュ通知を送受信する方法を教えてください/ ionic。

このようなものを設定する方法についての良いチュートリアルはありますか?

12
johncorser

Holly Schinskyが提供する サンプルアプリケーション があります。その中心は PushPlugin の使用法です。これは、Cordovaでプッシュ通知を処理する標準的な方法です。そのGitHubリポジトリのドキュメントには、この主題のための非常に広範なチュートリアルが用意されています。主な方法はpushNotification.registerは、プッシュ通知をリッスンするデバイスを登録します。

代わりにローカルで通知をトリガーする必要がある場合は、代わりに Local notification plugin を確認してください。これを使用すると、プッシュ通知を送信する外部サービスを必要とせずに、デバイスに表示される通知を追加できます。

14
Roope Hakulinen

このプラグインを使用 https://github.com/phonegap-build/PushPlugin

AndroidデバイスはGoogleクラウドメッセージング(GCM)サービスを通じてプッシュ通知を受信しますが、iOSデバイスはAppleプッシュ通知(APN)サービスから受信します。

通知を受信する方法(音、アラートなど)は、登録時にアプリケーションコードで設定されたオプションと、通知に関するユーザーのデバイス設定の組み合わせです。

より具体的にしたい場合は、以下のチュートリアルに従ってください:

http://devgirl.org/2013/07/17/tutorial-implement-Push-notifications-in-your-phonegap-application/

5
RockStar

ngCordovaには、プッシュ通知をサポートするプラグインがあります。 iOSとAndroidのサンプルコードがあります。確認してください: http://ngcordova.com/docs/plugins/pushNotifications/

2
Kunal Nagar

最新のphonegap-plugin-Pushを使用すると、ionicアプリでプッシュ通知を登録および受信できます。これは、次のGithubリンクで維持されます。

https://github.com/phonegap/phonegap-plugin-Push

インストール:

cordova plugin add https://github.com/phonegap/phonegap-plugin-Push --variable SENDER_ID="XXXXXXX"

XXXXXXXの場所SENDER_ID="XXXXXXX"Google Developer Console のプロジェクト番号にマッピングされます。 Google Developer Consoleにログインしてプロジェクト番号を見つけるには、プロジェクトを選択し、下のスクリーンショットのメニュー項目をクリックしてプロジェクト番号を表示します。

zzns8

Androidアプリケーションを作成していない場合は、この値に何でも入れることができます。

注:package.jsonでSENDER_ID変数を指​​定する必要がある場合があります。

"cordovaPlugins": [
    {
      "variables": {
        "SENDER_ID": "XXXXXXX"
      },
      "locator": "phonegap-plugin-Push"
    }
  ]

注:prepareメソッドを使用してプラグインをインストール/復元する場合は、config.xmlでSENDER_ID変数を指​​定する必要があります。それ以外の場合、prepareメソッドはプラグインのインストールをスキップします。

<plugin name="phonegap-plugin-Push" spec="1.6.0">
    <param name="SENDER_ID" value="XXXXXXX" />
</plugin>

インストール後、以下のコードをメインのJavaScriptファイルに追加して、プッシュ通知を登録および受信できます。

    $ionicPlatform.ready(function () {

         var Push = PushNotification.init({
           Android: {
             senderID: "XXXXXXX"//, //project token number (12 digit) from https://console.developers.google.com
             // forceShow: "true", //force show Push notification when app is in foreground on Android only.
           },
           browser: {
             pushServiceURL: 'http://Push.api.phonegap.com/v1/Push'
           },
           ios: {
             /*senderID: "XXXXXXX",*/ //If using GCM for ios, project token number (12 digit) from https://console.developers.google.com
             /*gcmSandbox: 'true',*/ //If using GCM for ios
             alert: 'true',
             badge: 'true',
             sound: 'true',
           },
           windows: {}
         });

         PushNotification.hasPermission(function (permissionResult) {
           if (permissionResult.isEnabled) {
             $log.debug("has permission for Push notification");

             /*Register device with GCM/APNs*/
             Push.on('registration', function (data) {
               // data.registrationId
               $log.debug("data.registrationId: " + data.registrationId);          
             });

             Push.on('notification', function (data) {
               // data.message,
               // data.title,
               // data.count,
               // data.sound,
               // data.image,
               // data.additionalData
               $log.debug(JSON.stringify(data));
             });

             Push.on('error', function (e) {
               // e.message
               $log.debug("e.message: " + e.message);
               //alert(e.message);
             });
           }
         });
       }
     }
2
Ian Pinto