読者です 読者をやめる 読者になる 読者になる

まほろば企画の覚え書

着物もアプリも初心者の二人がアプリ「着物クローゼット」を制作する奮闘記。宝塚観劇記も。

プッシュ通知なんて無くてもイイよね!?

monaca

悪あがき続行中

Monacaでプッシュ通知を実装しようと試みて、何度も挫折しているもなかです。
いい加減諦めればいいのに、と自分でも思いつつ、ついつい意地になってます(苦笑)
そんなこんなで(まだ着物クローゼットアプリには実装できていませんが)折角なので現在の進捗など書き残しておこうかと。

ニフティクラウド mobile backend(mBaaS)とGoogle Cloud Messeging(GCM)

プッシュ通知を実装するにあたり、どうやらこれらと連携するのが近道とわかったので、登録してみました。
そもそもどうやってアプリをインストールしているデバイスを見つけて、プッシュ通知を送信しているのでしょう?
詳しいことはイマイチ理解していませんが(おい、こら)ざっくりこんな感じかな、という私的解釈を書いておきますね。

アプリに特定のコードを記載する

ニフティクラウド mobile backendにデバイストークンが登録される

プッシュ通知を作成する

Google Cloud Messegingを介してアプリをダウンロードしているデバイスにプッシュ通知が送信される

という関係になっている、のではないかな~という曖昧な認識です(笑)
まぁ、小難しいことはこの際いいではありませんか。ねぇ?
気になる人は、こちらのサイトとかを読んでみてください。
そして、分かりやすい説明が出来る方、もなかに是非教えてください!あ、出来るだけ簡単な言葉でお願いします(てへ)

三者三様の設定

mBaaSGCMMonacaアプリ、これらはそれぞれ別々に機能しているわけですから、連携するためのユニークキーが必要となります。
各サイトへの登録自体は簡単ですので、ここでは割愛しますね。
連携するために必要な手順としては、大きく分けて以下の三つです。

それぞれ、分かりやすい説明がサイトにありますので、リンクから飛んでください(丸投げ)
気をつける点としては、Monacaアプリにコードを追加するところくらいでしょうか。
index.htmlに以下のコードを追加する部分があるかと思いますが、

window.NCMB.monaca.setDeviceToken(
         " #####application_key#####",   //ニフティクラウドmobile backendから発行されたkey
         " #####client_key#####",        //ニフティクラウドmobile backendから発行されたkey
         " #####sender_id#####"          //GCMで作成したProjectのProject Number
);

まず、書き換え忘れるとエラーが出ます(当たり前だ)
それと、sender_idのところに間違えてAPIキーを書かないようにしましょう。上の二つがキーなので、ついアルファベット羅列のキーを書きたくなりますが(私だけ?)ここは数字の方ですので。

Monacaの設定タブからCordovaプラグインの管理を選択し、Nifty(plugin.push.niftyプラグイン有効化するのもお忘れなく。
作業量はたいしたこと無いのですが、あちこちサイトを移動しながらの作業になるので抜けが無いように注意してくださいね。

結局できたの?できなかったの?

ここまで偉そうに説明してきましたが、では実際に動いたのかといいますと。

まっさらなアプリ(他に何も処理を記述していない状態)ではプッシュ通知を受け取ることができました。
バイストークンの登録も問題なく行えましたし、こちらの方法でサンプルコードを追加した場合にも、mBaaSの「データストア」にデータが保存されていることが確認できました。

しかし、既に公開している着物コーディネートアプリ「着物クローゼット」へ同様の処理を行うと、ビルドの時点でエラーが出ます。
原因がよくわからないので、今のところ対策も立てられておりません。
はっきり言ってお手上げです(涙)

この、出来そうで出来ないというのは悔しいものですね。
とは言っても、糸口も掴めていない状態では手の打ち様もありません(無念)
いずれ、もう少し経験値を積んでレベルが上がれば、何か見えてくるかも知れない。
そんな一縷の望みをかけて、今はここに書き残しておくことにします。

それから、JSONデータの受け取りに関しても一言。
Monaca無料版でもプッシュ通知を送る事はできますが、ユーザーが通知をクリックせずにアプリを立ち上げてしまった場合は、通知に載せたJSONデータはアプリに反映されません。
こちらのサイトでも、試してみたが無理だったという旨が残念ながら記載されております。

プッシュ通知の代わりに

本当は、アプリをダウンロードしてくださっている皆様に、リアルタイムでのお知らせを行いたいのですが。
現状では実現が難しそうですのでこちらで告知しておきます。
前にも書きましたが、着物コーディネートアプリ「着物クローゼット」の有料版リリース記念に、着物コーディネートコンテストを開催いたします。
優勝者には、有料版を無料でご利用頂けるプロモーションコードを配布予定ですので、皆様、是非ともご参加くださいませ。
皆様のご応募、お待ちしております♪
にほんブログ村 ファッションブログ ふだん着物(和服)へにほんブログ村 スマホ・携帯ブログへ