ここでは、Javaを利用して、HTML/JavaScriptの機能を拡張する方法を紹介します。JavaScriptを使うと処理速度が遅い場合や、標準APIで提供されていない機能を追加したい場合などに、プラグインを作って機能を拡張することができます。
jsWaffleのフレームワークでは、よく使われるAndroidのAPIを使いやすい形で提供しています。そのため、それほど凝った処理をするのでなければ、特にプラグインを作る必要はないでしょう。しかし、最新のAndroid APIを利用したい場合や、JavaScriptでは計算が遅いのでもっと速く処理する必要がある場合に、Javaでプラグインを作ることができます。
jsWaffleは非常にシンプルな作りとなっており、ちょっとJavaを知っている人ならば、手軽にプラグインを作ることが可能です。Javaでプラグインを作って機能を拡張するならば、JavaScriptの柔軟性を利用しつつ、必要な部分だけJavaで処理を補うことが可能です。
プラグインの作り方は、以下の通りです。
AptanaのPackage Explorerで、/src/パッケージ名 を開き、そこに、「TestPlugin.java」のようなプラグイン用のJavaファイルを作成します。内容は以下のように、WafflePlugin を継承したクラスとします。
そして、プラグインに追加したいメソッドを定義します。ここでは、文字列を返す getMessage() というメソッドを追加しました。これは「Hello!」という文字列を返すだけのメソッドです。
file:/src/com.example.Tips/TestPlugin.java
package com.example.Tips;
import com.kujirahand.jsWaffle.model.WafflePlugin;
// プラグインクラス
public class TestPlugin extends WafflePlugin {
// プラグインに追加するメソッド
public String getMessage() {
return "Hello!";
}
}
次に、「/src/パッケージ名/プロジェクト名.java」のファイルを開きます。そして、その中にある「onAddPlugins()」メソッドに以下のプログラムを追加します。これで、JavaScriptに
Testというオブジェクトが追加され、そのメソッド「getMessage()」が利用可能になりました。
file:/src/com.example.Tips/Tips.java
protected void onAddPlugins() {
super.onAddPlugins();
addPlugin("Test", new TestPlugin()); // ←←← この行を追加
}
HTMLにサンプルプログラムを記述して、プラグインに追加したメソッドが利用できるかどうか試してみましょう。
file:/assets/www/index.html
<script type="text/javascript">
var s = Test.getMessage(); // プラグインのメソッドを呼び出す
alert(s);
</script>