Closed sumi-hiro closed 6 years ago
今回はmonaca-cli起点のプロジェクトのため、マニュアル(サンプル)のようにMonaca IDEからのプラグインの追加はできない。 monaca コマンドで追加するようにする。
マニュアルに記載されているプラグイン「Nifty (ncmb-push-monaca-plugin )」が見つからない。。 cordova pluginsで検索をかけても見つからない。。
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 フォルダが作成され、その中にプラグインが追加された
$ cordova plugin add ncmb-push-monaca-plugin
これでインストールいけました。config.xmlやpackage.jsonにも記載されたので管理上こっちがいいと思います。monaca plugin addとどちらがいいか検討してみてください
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
プラグインを組み込んだ状態だと、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
が見つからないという状態。
package.json, config.xml 内の
plugin.push.nifty
という名前を
ncmb-push-monaca-plugin
に書き換えると、ビルドは通った。
(プラグインが正常に組み込まれているかはまだ確認できていない)
書き換えた後のビルドログ 抜粋
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
TSへ組み込むためのコーディングとしては、
index.html 内 https://github.com/sumi-hiro/monacaICE/issues/40#issuecomment-371722467 の一行追加と、
app.component.ts 内 に NCMB オブジェクトの宣言 一行を追加。
declare var NCMB: any;
https://github.com/sumi-hiro/monacaICE/issues/40#issuecomment-371723628 TypeScriptへ組み込んだ状態でプッシュ通知の動作が確認できた。
Nifty (ncmb-push-monaca-plugin ) 参考: wiki/push-notification-for-Monaca