LoginSignup
13
6

More than 5 years have passed since last update.

Cordova plugin.xmlの内容について

Last updated at Posted at 2017-09-28

Cordovaの作成時に文献が無くて困って調査したメモ

会社のプロジェクトで、Cordovaのプラグインを”使う”のではなく、”作る”必要が出てきて、色々調査をしましたが、最終的にはTryAndErrorで解決した結果を纏めています。

基本的に、Android環境でしか評価していませんが、志はiPhoneもWindowsも変わらないと思うので、同じようなやり方で進められるでしょう。(無保証)

Cordovaの構成

CordovaでPluginを使った場合の基本の構成は、以下の図のようになります。
CordovaPlugin.png
今更ながらな話ですが、Cordovaを使った構成で、Nativeなリソースを使った処理がしたい場合など、こんなことをしないといけません。
問題となるのは、Pluginとして作ったものを配置するコマンド「cordova plugin add (Plugin名称)」の定義ファイルである「plugin.xml」です。

それでは、実際のXMLですが、次のような感じです。

plugin.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のディレクトリは、最終的な展開先と同じくパッケージ名の設定にするのも有るみたいですが、個人的には短い方が間違いもないので好みです。
で、各々の連携はこんな感じになります。

CordovaFileCoop.png

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6