「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
Cordova - Pluginの利用と開発
利用 †
Cordovaフレームワークに組み込まれていたネイティブ機能も含め、
Cordova3.0からは、ネイティブ機能を提供するものはすべてプラグインとして管理されるようになっている。
プラグインのパッケージ †
- プラグインに関する情報
- JavaScriptインターフェイス
- 各プラットフォーム向けのネイティブコード
- Android:Java
- iOS:Objective-C
公式で提供されているプラグイン †
cordova pluginコマンドで管理 †
結果は、config.xmlに反映される。
一覧 †
cordova plugin ls
追加 †
cordova plugin add リポジトリのURL
削除 †
cordova plugin rm org.apache.cordova.core.camera(プラグインの識別子)
反映 †
config.xmlからPrepareコマンドで
必要なファイルを(指定)プラットフォームにコピーする。
cordova prepare -d
この動作はカナリ複雑で、
- Androidプロジェクト、Xcodeプロジェクトの設定や、
- プラグインのネイティブコード、JavaScriptが、
platformsフォルダに出力される。
開発 †
プロジェクトを作成する。 †
Androidの場合、 †
platforms/android
iOSの場合、 †
platforms/iOS
ネィティブ側を実装 †
Androidの場合、 †
- Java
- CordovaPlugin?クラスを継承し、executeメソッドに実装
iOSの場合、 †
- cordova.execメソッドを呼び出すと、
Cordovaフレームワークに実装されるブリッジ機構によりプラグインを呼び出される。
cordova.exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
# | 名前 | 概要 |
1 | <successFunction> | 呼び出し成功時に実行される関数 |
2 | <failFunction> | 呼び出し失敗時に実行される関数 |
3 | <service> | config.xmlに追加したプラグイン名 |
4 | <action> | 呼び出すプラグインのアクション名 |
5 | <args> | ネイティブ側に引数として渡す配列。JSON化できるもののみを渡す |
Androidの場合、 †
CordovaPlugin?.executeメソッド(のOverrideメソッド)が呼び出される。
iOSの場合、 †
・・・
ネイティブ・アクセス部分 †
プラグインの種類 †
標準的プラグイン †
既定で有効 †
- cordova-plugin-inappbrowser
- cordova-plugin-customurlscheme
- cordova-universal-links-plugin
その他のプラグイン †
既定で有効 †
- phonegap-plugin-push
- cordova-plugin-geolocation
- cordova-plugin-code-push
各種プラグインの追加 †
リンクを外部ブラウザで開く †
Whitelist †
既定では、
- ホワイトリストで指定したURL以外は表示できない。
- httpが無いとWebView内部で開き、httpが有ると外部ブラウザで開く。
InAppBrowser? †
提供元不明コンテンツを読み込む場合に使用すると良い。
- InAppBrowser?にホワイトリストは適用されない。
- 新規にInAppBrowser?ウィンドウが開く。
- 標準の Web ブラウザと同じ動作をするが、
- Cordova API へのアクセスはできない。
参考 †
外部ブラウザからNativeに遷移 †
プラグイン †
- cordova-plugin-customurlscheme
- cordova-universal-links-plugin
参考 †
- Cordova tips - Custom URL scheme に対応させよう | phiary
http://phiary.me/cordova-tips-custom-url-scheme/
- pluginを追加する。
cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=hoge --save
- urlを受け取る。
function handleOpenURL(url) {
setTimeout(function() {
alert("received url: " + url);
}, 0);
}
- EddyVerbruggen?/Custom-URL-scheme:
- 上記のvalue部に大文字を指定すると上手く動かないので要注意。
プラグインのインストール †
メジャーなプラグインは以下。
プッシュ通知受信処理の実装 †
地理位置情報 †
位置情報サービスと連携
プラグイン †
cordova-plugin-geolocation
参考 †
審査不要のコード差し替え †
プラグイン †
cordova-plugin-code-push
参考 †
参考 †