sumi-hiro / monacaICE

monaca + angular のサンプル
MIT License
0 stars 1 forks source link

Monaca プッシュ通知受信用プラグインの組み込み #18

Closed sumi-hiro closed 6 years ago

sumi-hiro commented 6 years ago

Nifty (ncmb-push-monaca-plugin ) 参考: wiki/push-notification-for-Monaca

sumi-hiro commented 6 years ago

今回はmonaca-cli起点のプロジェクトのため、マニュアル(サンプル)のようにMonaca IDEからのプラグインの追加はできない。 monaca コマンドで追加するようにする。

sumi-hiro commented 6 years ago

マニュアルに記載されているプラグイン「Nifty (ncmb-push-monaca-plugin )」が見つからない。。 cordova pluginsで検索をかけても見つからない。。

sumi-hiro commented 6 years ago

github のリポジトリを見つけたので、目先をそこに向ける。

$ monaca plugin add https://github.com/NIFCloud-mbaas/monaca_push_plugin
Fetching plugin "https://github.com/NIFCloud-mbaas/monaca_push_plugin" via git clone
Repository "https://github.com/NIFCloud-mbaas/monaca_push_plugin" checked out to git ref "master".

plugins フォルダが作成され、その中にプラグインが追加された

KadoTomohiro commented 6 years ago
$ cordova plugin add ncmb-push-monaca-plugin

これでインストールいけました。config.xmlやpackage.jsonにも記載されたので管理上こっちがいいと思います。monaca plugin addとどちらがいいか検討してみてください

sumi-hiro commented 6 years ago

cordova plugin add がなかなか通らなかった。

$ cordova plugin add ncmb-push-monaca-plugin
Error: tunneling socket could not be established, cause=socket hang up

結論としては、Proxy(環境変数)の設定がまずかったのが原因。 修正後、正しくインストールできるようになった。

$ cordova plugin add ncmb-push-monaca-plugin
Adding plugin.push.nifty to package.json
Saved plugin info for "plugin.push.nifty" to config.xml
sumi-hiro commented 6 years ago

プラグインを組み込んだ状態だと、remote build でエラーが発生。 以下、一部抜粋

- Cordova prepare -
$ /data/build-server/cordova/7.1.0/bin/cordova prepare android
Discovered plugin "plugin.push.nifty" in config.xml. Adding it to the project
Failed to restore plugin "plugin.push.nifty" from config.xml. You might need to try adding it again. Error: Failed to fetch plugin plugin.push.nifty@~2.0.11 via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ETARGET
npm ERR! notarget No matching version found for plugin.push.nifty@~2.0.11
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/builder/.npm/_logs/2018-03-07T11_54_44_063Z-debug.log

npm で plugin.push.nifty が見つからないという状態。

sumi-hiro commented 6 years ago

package.json, config.xml 内の plugin.push.nifty という名前を ncmb-push-monaca-plugin に書き換えると、ビルドは通った。

(プラグインが正常に組み込まれているかはまだ確認できていない)

sumi-hiro commented 6 years ago

書き換えた後のビルドログ 抜粋

Discovered plugin "ncmb-push-monaca-plugin" in config.xml. Adding it to the project
Fetching plugin "ncmb-push-monaca-plugin@2.0.11" via npm
Installing "plugin.push.nifty" for ios
Adding plugin.push.nifty to package.json
Saved plugin info for "plugin.push.nifty" to config.xml
sumi-hiro commented 6 years ago

TSへ組み込むためのコーディングとしては、 index.html 内 https://github.com/sumi-hiro/monacaICE/issues/40#issuecomment-371722467 の一行追加と、 app.component.ts 内 に NCMB オブジェクトの宣言 一行を追加。 declare var NCMB: any;

sumi-hiro commented 6 years ago

https://github.com/sumi-hiro/monacaICE/issues/40#issuecomment-371723628 TypeScriptへ組み込んだ状態でプッシュ通知の動作が確認できた。