私はAndroid JavascriptInterfaceによって返されるアイテムを反復処理する方法はありますか?
public interface JavascriptInterface
{
public MyIterator getItems();
}
public interface MyIterator
{
public boolean hasNext();
public String next();
}
私はJavaScriptのWebアプリケーションへのAPIとして公開され、次のJavaインタフェースを持っている:
Webview webview;
JavascriptInterface webapi;
//init webview and webapi [..]
webview.addJavascriptInterface(webapi, "webapi");
JavaScriptを使用してアイテムを反復する可能性がある場合、私は疑問に思いますforループのような:
for (var item in webapi.getItems())
{
//do something with item [..]
}
が、私はこれを可能にするためにMyIterator
のではなく、実装/使用するどのようなタイプ/メソッドを持っています、または何とか(JavaScriptヘルパーを使用して)それを変換することはできますか? 私は現在、JSONでString
オブジェクトを返し、JavaScriptライブラリで解析します。より簡単で高速なソリューションはありますか?
編集:JSONソリューションには、静的データのコピーのみを提供することができ、メソッドを呼び出せないという問題もあります。あなたのアイデアを与えることを
javascriptインターフェイスからプリミティブと文字列を渡すことはできますが、多くのオプションが残っています。最も単純なケースでは、 "{item one '、" item two'} "を返すことができ、JavaScriptは配列として扱いますが、さらに複雑なJSONオブジェクトを返すこともできます。どのような場合でも、メソッドのシグネチャは文字列を返す必要があります。 私はそれが役に立ちそうです。 –
少なくとも私は他のカスタムインターフェイスを返して、そこにメソッドを呼び出すこともできます。このアイデアをすばやく放棄すべきかどうかはわかりません。単純なforeachの実装では、 'boolean hasNext()'と 'AnySupportedType next()'メソッドしか必要ありません。しかし、これはどのようにjavascriptで行うことができますか? :\ – Nappy