web-dev-qa-db-ja.com

Ionic Frameworkを使用したプッシュ通知

Ionicを使用してプッシュ通知を実装しようとしていますが、かなり混乱しています。これまで、次の方法を試しましたが成功しませんでした。

イオンプッシュ

最善の解決策のようです。ブラウザで通知を「シミュレート」し、簡単にテストできるようにします。 2つのバージョンがあります:

  1. バージョン1.0:ドキュメントは http://docs.ionic.io/v1.0/docs/Push-overview で入手できます。ページの下部に、最新バージョン(2.0beta)を確認するようにという警告が表示されます。ページを表示したまま指示に従おうとすると、すべて正常に機能しているように見えますが、プッシュを送信すると https://Push.ionic.io/api/v1/Push メッセージが表示されません到着。 Firebugを見ると、$ ionicPushが1.0APIをクエリする代わりに2.0alphaAPIをクエリしていることがわかりました。

  2. バージョン2.0:ドキュメントは http://docs.ionic.io/docs/Push-overview で入手できます。これは1.0と非常によく似ており、ブラウザー、Android(開発および本番)およびiOS開発環境で正常に機能します。しかし、IOSプロダクションでメッセージを受け取ることができません(保存するアプリを公開した後)。解決策を一生懸命探しましたが、アルファ版であり、使用すべきではないという回答がいくつか見つかりました。

したがって、バージョン1.0が存在せず(v2.0 APIを使用している)、v2.0がアルファ版であり、使用すべきではない場合、Ionicプッシュは使用できないと結論付けました。

質問1:ionic Pushを使用してiOSとAndroidに通知を送信することは可能ですか?

質問2:2.0セットアップを使用して、PHPPushの代わりにApnsIonicでメッセージを送信できますか?

Cordova Phonegapプラグインプッシュ

このプラグインは、Ionicが舞台裏で使用していると思います。しかし、私はそれをどのように使用するのか理解できません。私が見つけたチュートリアルとドキュメントは廃止されており、非推奨バージョンを参照しています( https://github.com/phonegap-build/PushPlugin.git )。 ngCordovaでさえ、この非推奨バージョンを参照しています( http://ngcordova.com/docs/plugins/pushNotifications/ )。 ngCordovaはIonicプッシュも提案します。 https://github.com/phonegap/phonegap-plugin-Push をionicで使用する方法を示す完全な例が見つかりません。

質問3:Cordova Phonegapプラグインプッシュをイオンでどのようにセットアップしますか?

10
Arivan Bastos

IOS and Android with Ionic 1 using Google Firebase and https://github.com/arnesson/cordova-plugin-firebase/ 。私がしたことに従って:

  1. Developer.Apple.comでDEV/PRODプロビジョニングプロファイルを作成しました。プロビジョニングプロファイルを作成するときに、開発者/チームの証明書を確認しました。
  2. Developer.Apple.comでDEV/PRODACS証明書を作成しました。
  3. 開発マシンに開発者/チーム証明書をインストールしました。
  4. 開発マシンにDEV/PRODACS証明書をインストールしました。
  5. 開発マシンにprovisionigプロファイルをインストールしました。
  6. [email protected]」でプラグインをインストールしました。
  7. 私のアプリにコードを追加しました:

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

    window.FirebasePlugin.onNotificationOpen(function(notification){
    // alert( "Yeahh!"); }、function(error){// alert( "Error"); });

  8. Google GCM/GoogleFirebaseアカウントを作成しました。

  9. IOS/Androidプラットフォームを搭載したFirebaseにアプリを追加しました。
  10. Firebaseプロジェクト設定の「クラウドメッセージング」セクションにAPS証明書を追加しました。
  11. GoogleService-Info.plist e 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;
1
Arivan Bastos

このガイドが本当に役立つと思われるまで、私はこれに数日間苦労していました: https://github.com/yafraorg/yafra/wiki/Blog-Ionic-PushV5

それが他の誰かにも役立つことを願っています!

これはcordovaPushv5の非公式ドキュメントです。実際の実装はこちらをご覧ください: https://github.com/driftyco/ng-cordova/blob/master/src/plugins/Push_v5.js

1
IonicBurger

Ionicプッシュはまだ使用していなかったので、3番目の質問にしか答えることができません。

実際、GitHubプラグインページの例はかなり良いと思うので、それらを参照します。他にご不明な点がございましたら、お気軽にコメントしてください。詳しく説明します。

開始するには、devicereadyリスナーコールバック内のindex.htmlに サンプルスクリプト を含め、設定でプラグインを初期化します。登録イベントハンドラーでは、データベースに保存できるdata.registrationIdを介して現在のユーザーのデバイスIDを取得します。

実際にプッシュメッセージを送信するには、 node-gcm (Android)および apnagent (iOS)サーバーサイドを使用します。少なくともAndroid プラグインページ )の良い例もいくつかあります。

1
kolli