読者です 読者をやめる 読者になる 読者になる

cordova(phonegap)で自作プラグインのサンプルを試す際にハマったのでメモ

コレにはまった

まず、プラグイン作成の必要に迫られて作ったとかのレベルの話ではありません。
ネットなどのサンプルを試してそのままコピペして動きを試してみる、という作業でハマった内容です、、、

まず手順

com.exampleという識別子を使用してる前提で。
sample/というディレクトリで作業している前提で。

1. プラグインの設定
sample/config.xmlの編集

2-1. androidでの処理実装(javaで呼び出される方) ※eclipseでの作業
sample/platforms/android/src/com/example/sample/MyPlugin.java

2-2. iosでの処理実装(objective-cで呼び出される方) ※xcodeでの作業
sample/platforms/ios/src/com/example/sample/MyPlugin.h
sample/platforms/ios/src/com/example/sample/MyPlugin.m

4. javascriptでの呼出し側の実装
sample/www/js/index.js

5. ビルドして実行
cordova emulate android
cordova emulate ios

のような作業になります。
※それぞれの記述内容についてはこのページがとてもわかりやすいので皆さん参考にしてください。

プラグインの設定でハマった、、、

sample/platforms/android/res/xml/config.xml
sample/platforms/ios/HelloWorld/config.xml

記述するファイルが間違っていた?ためか以下に記述してから、cordova emulateしていました。
するとsample/config.xmlが上記のファイルたちに反映されてしまうようで書いた内容が消えてしまうとういことでした。
しかし参考にしているサイトなどを見ると上記のファイルに記述しているので僕のやり方が違う気がしますのでもう少し調べる必要はありそうですが、、、

javaを編集するためにeclipseから開こうとしてハマった、、、

まぁ、開き方知らなかっただけなのですが、、、これだけでした
eclipseツールバーのfile>New>Otherで「select a wizard」を開く
Android Project from Existing Codeを選択してsample/platforms/androidを開く

MyPlugin.javaが継承元クラスでなぜか悩んだ、、、

Sample/src/com.example.sample/MyPlugin.java(自分で作るファイル)
Sample-CordovaLib/src/org.apache.cordova.CordovaPlugin(継承元クラス)

MyPlugin.javaでMyPluginクラスを作るさいにorg.apache.cordova.CordovaPluginを継承して作ればよいだけだったのですが
SampleからSample-CordovaLibを参照するというのが理解できなくてハマった、、、別プロジェクト?だと無理だと思い込んでいたようです
java開発も少しは勉強しないとと感じました

スペルミス、、、

config.xmlに1文字スペルミスがありました、、、これになかなか気づかなくて他に原因があるんじゃないかと
新しい事やるときは大抵こういうことがあるので根気よく勉強しないとですね

おわり

まぁ、なんだかんだサンプルを動かすだけでずいぶん時間かかりましたが引き続き勉強していかなくてはと思いました
サーバ側のスクリプトばかり書いていたから色々ついていけなくて、、、やばいです。