我有以下的Java接口,如何遍歷Android JavascriptInterface返回的項目?
public interface JavascriptInterface
{
public MyIterator getItems();
}
public interface MyIterator
{
public boolean hasNext();
public String next();
}
我公開爲一個API,一個JavaScript的Web應用程序:
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界面傳回原始數據和字符串,但仍然會給你提供很多選項。在最簡單的情況下,你可以返回「{'項目一','項目二'}」,你的javascript會把它當作一個數組,但是你也可以返回一個更復雜的JSON對象。無論如何,你的方法簽名將需要返回一個字符串。 我希望這很有幫助。 –
至少我還可以返回任何其他自定義接口並調用其上的方法。所以我不太確定我是否應該如此放棄這個想法。一個簡單的foreach實現只需要一個'boolean hasNext()'和一個'AnySupportedType next()'方法。但是,這怎麼能在JavaScript中完成呢? :\ – Nappy