##Cordovaの作成時に文献が無くて困って調査したメモ
会社のプロジェクトで、Cordovaのプラグインを”使う”のではなく、”作る”必要が出てきて、色々調査をしましたが、最終的にはTryAndErrorで解決した結果を纏めています。
基本的に、Android環境でしか評価していませんが、志はiPhoneもWindowsも変わらないと思うので、同じようなやり方で進められるでしょう。(無保証)
###Cordovaの構成
CordovaでPluginを使った場合の基本の構成は、以下の図のようになります。
今更ながらな話ですが、Cordovaを使った構成で、Nativeなリソースを使った処理がしたい場合など、こんなことをしないといけません。
問題となるのは、Pluginとして作ったものを配置するコマンド「cordova plugin add (Plugin名称)」の定義ファイルである「plugin.xml」です。
それでは、実際のXMLですが、次のような感じです。
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-nyanko" version="0.1.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>cordova-plugin-helloworld</name>
<js-module name="nyanko-js" src="www/nyanko.js">
<clobbers target="nyanko" />
</js-module>
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="nyanko-java">
<param name="android-package" value="ko.nyan.nyanko.Nyanko"/>
</feature>
</config-file>
<source-file src="src/Nyanko.java" target-dir="src/ko.nyan/nyanko/"/>
</platform>
</plugin>
直感でわかりそ~なところと、分からないところがります。
####xmlns,xmlins:android
私の中では、オマジナイです。
####id
一番大事かも。Cordova内部では、このキーを元に管理してるみたいです。
####version
自己管理用です。制御は掛かりません。
####name
人にとって大事な項目。cordova plugin lsコマンドでDescription的に表示されます。
####description
細かい説明です。これって、どこかでみるところあるのかなー。私はみたことがない。。。
####js-module
#####src
IFのJavaをどこに保存するかです。
src側が自分で作ったプラグインの置き場所(ローカルのファイルとか、GitにおいてるんだったらGitのパスとか)からの相対パスです。
#####name
ココに付けた名前がCordova内部での識別用の記号としてdefineされます。
#####clobbers
設定した値でjsのWindowオブジェクトの子要素としてアクセス出来るようになります。例えば、上記の例で、行くと、windows.nyankoとかでアクセスが出来るようになるってことですね。
逆に言えば、JavaScriptでWindowオブジェクトの予約語を設定してはイケナイということです。ちなみに、私は位置情報関連のプラグインを作成してた時にlocationて名付けて痛い目見ました。
####platform name
ターゲット端末ですね。今回はandroidのみです。
####config-file
Androidのconfig.xmlに、今回追加するconfig.xmlに追記するための宣言です。
今回追加する、Java側のクラス情報を記載すれば良いはずです。
####source-file
実際のJavaファイルをどこからどこにコピーするかですね。
js-moduleと考え方は一緒です。
srcのファイルをdstにコピーします。
srcのディレクトリは、最終的な展開先と同じくパッケージ名の設定にするのも有るみたいですが、個人的には短い方が間違いもないので好みです。
で、各々の連携はこんな感じになります。