我正在开发一个带有jQuery Mobile和PhoneGap的Android应用程序。这是我的活动:
public class xxx extends DroidGap {
/** Called when the activity is first created. */
private String FILENAME = "";
private static final String HTML_ROOT = "file:///android_asset/www/";
private Handler handler = null;
private static WebView webView = null;
public MyTeam team = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
handler = new Handler();
FILENAME = getString(R.string.fileName);
//parsing data from file
String json = readFile();
team = parseJson(json);
appView.addJavascriptInterface(this, "MyTeam");
super.loadUrl("file:///android_asset/www/menu.html");
}
public String HW(){
return team.getTeamName();
}
这是我在menu.html中的Javascript代码:
$(document).ready(function(){
alert(MyTeam.HW()); // work perfectly
alert("name "+MyTeam.team.getTeamName()); //doesn't work!
});
所以问题是:
似乎我只能访问函数而不能直接访问公共变量。
我做错了什么?
感谢。
答案 0 :(得分:2)
您无法直接访问Java对象字段。它就在addJavaScriptInterface的文档中。此外,如果您正在使用PhoneGap,那么您应该write a plugin并让我们担心addJavaScriptInterface崩溃的情况。