Ionicを使用してプッシュ通知を実装しようとしていますが、かなり混乱しています。これまで、次の方法を試しましたが成功しませんでした。
イオンプッシュ
最善の解決策のようです。ブラウザで通知を「シミュレート」し、簡単にテストできるようにします。 2つのバージョンがあります:
バージョン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.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プラグインプッシュをイオンでどのようにセットアップしますか?
IOS and Android with Ionic 1 using Google Firebase and https://github.com/arnesson/cordova-plugin-firebase/ 。私がしたことに従って:
私のアプリにコードを追加しました:
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"); });
Google GCM/GoogleFirebaseアカウントを作成しました。
通知を送信するには、次の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;
このガイドが本当に役立つと思われるまで、私はこれに数日間苦労していました: https://github.com/yafraorg/yafra/wiki/Blog-Ionic-PushV5
それが他の誰かにも役立つことを願っています!
これはcordovaPushv5の非公式ドキュメントです。実際の実装はこちらをご覧ください: https://github.com/driftyco/ng-cordova/blob/master/src/plugins/Push_v5.js
Ionicプッシュはまだ使用していなかったので、3番目の質問にしか答えることができません。
実際、GitHubプラグインページの例はかなり良いと思うので、それらを参照します。他にご不明な点がございましたら、お気軽にコメントしてください。詳しく説明します。
開始するには、deviceready
リスナーコールバック内のindex.htmlに サンプルスクリプト を含め、設定でプラグインを初期化します。登録イベントハンドラーでは、データベースに保存できるdata.registrationId
を介して現在のユーザーのデバイスIDを取得します。
実際にプッシュメッセージを送信するには、 node-gcm (Android)および apnagent (iOS)サーバーサイドを使用します。少なくともAndroid プラグインページ )の良い例もいくつかあります。