作成するアプリケーションがWeb標準技術や、Cordova標準プラグインだけでは構成できない高度な実装をおこないたい場合、ユーザー独自のCordovaプラグインを作成しアプリケーションに組み込む事で機能を拡張する事ができます。本節では独自のCordovaプラグインのアプリケーションへの組み込み方法を説明します。
IMAPSで提供されている雛形プロジェクトでは、Cordova標準で提供されているプラグインは利用可能な状態に設定されています。それ以外のOSSあるいはサードパーティ製のプラグインをアプリケーションに組み込むには、以下の手順にしたがいます。
OSSのプラグインの場合
IMAPSが提供する雛形プロジェクトは、CLI形式ではありません。CLI形式のプラグインを追加する場合は、各プラットフォームのソースを、プロジェクトにインポートしてください。
各プラットフォームのJavaScriptファイルはassets配下に配置し、アプリケーションのHTMLファイルなどから読み込んでください。
config.xmlを修正し、取り込んだプラグインをアプリケーションから利用可能な状態に設定します。config.xmlの詳細については、Cordova API Referenceを参照してください。
(Androidの場合)必要に応じて、プラグインを動作させるために必要なパーミッションをAndroidManifest.xmlに定義してください。
サードパーティ製のプラグインの場合
提供ベンダの手順にしたがってください。
アプリケーションの使用メモリを抑えたい、不要な資産をアプリケーション内に取り込みたくないといった理由などから、アプリケーションが利用しないCordovaプラグインを削除する事ができます。アプリケーションが利用しないCordovaプラグインを削除するには、以下の手順にしたがいます。
Androidの場合:
プラグインのネイティブ側が実装されているjarファイル、あるいはソースをプロジェクトから削除します。
プラグインのJavaScript側が実装されているJavaScriptファイルを、assets(Androidの場合)から削除します。
config.xmlを修正して、該当するプラグインを削除します。
AndroidManifest.xmlを修正して、不要なuses-permissionsを削除します。
iOSの場合:
プラグインのネイティブ側が実装されているフレームワーク、あるいはソースをプロジェクトから削除します。
プラグインのJavaScript側が実装されているJavaScriptファイルを、Application Filesから削除します。
config.xmlを修正して、該当するプラグインを削除します。
Cordovaの標準プラグインが動作するために必要なパーミッションを以下に示します。本節はAndroid版にのみ関係します。
No. | 名前 | 必要なパーミッション |
---|---|---|
1 | Battery | なし |
2 | Camera | android.permission.CAMERA、android.permission.WRITE_EXTERNAL_STORAGE |
3 | Contacts | android.permission.READ_CONTACTS、android.permission.WRITE_CONTACTS、android.permission.GET_ACCOUNTS |
4 | Device | なし |
5 | Accelerometer | なし |
6 | Compass | android.permission.ACCESS_COARSE_LOCATION、android.permission.ACCESS_FINE_LOCATION |
7 | Notification | なし |
8 | File | android.permission.WRITE_EXTERNAL_STORAGE |
9 | FileTransfer | android.permission.WRITE_EXTERNAL_STORAGE |
10 | Geolocation | android.permission.ACCESS_COARSE_LOCATION、android.permission.ACCESS_FINE_LOCATION |
11 | Globalization | なし |
12 | InAppBrowser | android.permission.RECEIVE_SMS |
13 | Media | android.permission.RECORD_AUDIO、android.permission.MODIFY_AUDIO_SETTINGS、android.permission.WRITE_EXTERNAL_STORAGE、android.permission.READ_PHONE_STATE |
14 | Capture | android.permission.RECORD_AUDIO、android.permission.RECORD_VIDEO、android.permission.WRITE_EXTERNAL_STORAGE |
15 | NetworkStatus | android.permission.ACCESS_NETWORK_STATE、android.permission.ACCESS_WIFI_STATE |
16 | Splashscreen | なし |
17 | Vibration | android.permission.VIBRATE |