質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Q&A

解決済

1回答

2932閲覧

cordovaプッシュ通知がうまくいかない(Android)

y_k

総合スコア11

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

0グッド

0クリップ

投稿2017/02/23 15:53

###前提・実現したいこと
いろんなサイトを見ながら、cordovaでAndroidのプッシュ通知を実装しようとしましたが、うまくいきません。
トークンを取得するところで詰まってます。

###試した手順

  1. $ cordova create test
  2. $ cd test
  3. $ cordova platform add android
  4. $ cordova plugin add phonegap-plugin-push
  5. www/js/index.jsを下記に変更

js

1var app = { 2 // Application Constructor 3 initialize: function() { 4 document.addEventListener('deviceready', this.onDeviceReady.bind(this), false); 5 }, 6 // deviceready Event Handler 7 // 8 // Bind any cordova events here. Common events are: 9 // 'pause', 'resume', etc. 10 onDeviceReady: function() { 11 this.receivedEvent('deviceready'); 12 }, 13 14 // Update DOM on a Received Event 15 receivedEvent: function(id) { 16 var parentElement = document.getElementById(id); 17 var listeningElement = parentElement.querySelector('.listening'); 18 var receivedElement = parentElement.querySelector('.received'); 19 20 listeningElement.setAttribute('style', 'display:none;'); 21 receivedElement.setAttribute('style', 'display:block;'); 22 23 console.log('Received Event: ' + id); 24 }, 25 26 initPushNotification: function(){ 27 var push = PushNotification.init({ "android": {"senderID": "*********"}, 28 "ios": {"alert": "true", "badge": "true", "sound": "true"}, "windows": {} } ); 29 30 push.on('registration', function(data) { 31 // data.registrationId 32 console.log(data); 33 alert(data); 34 }); 35 36 push.on('notification', function(data) { 37 // data 38 }); 39 40 push.on('error', function(e) { 41 // e.message 42 }); 43 } 44 45 46}; 47 48app.initialize(); 49app.initPushNotification();

6. 実機(Android)をMacにつなぐ
7. cordova run android
8. 実機(Android)で実行される。
9. プッシュ通知に必要なトークンがアラートで表示されると期待するが、出ない。なぜ?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

devicereadyのイベントが走ってから、initPushNotificationを行う必要があるのですが、
現状は、initialize(devicereadyの予約)⇒initPushNotification⇒devicereadyイベントの順で動作しているのではないでしょうか?

push.on('error', function(e) { // e.message });

もし解決できなければ、ここでエラーを出力してみて下さい

投稿2017/03/10 12:40

crazyBoboKent

総合スコア75

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問