Я хочу поддержать некоторый самоопределяемый интерфейс JavaScript с форматом "ABfunc ()" в активности моего приложения WebView.
Вот пример
HTML-код js веб-страницы такой:
<html>
<body>
<script type="text/javascript">
document.write("B.func1() return " + A.B.func());
</script>
</body>
</html>
И мой код Java такой:
public class MyDemo extends Activity {
private WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
...
mWebView = (WebView)findViewById(R.id.webView1);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new AClass(), "A");
mWebView.loadUrl("file:///android_asset/mydemo.html");
}
final class AClass {
final class BClass {
BClass() {}
int func() { return 1; }
}
public BClass B = new BClass();
AClass() {}
}
}
Но когда я запускаю свое приложение на симуляторе, оно не может работать в правильном направлении.И LogCat отправляет мне предупреждение, такое как: TypeError : Result of expression 'A.B' [undefined] is not an object. at file:///android_asset/mydemo.html
Так что мой вопрос:
1. Если я хочу привязать формат интерфейса JavaScript как «ABfunc ()» к моему классу Java, какЯ делаю это?
2. Если я хочу получить свойство класса javascript напрямую, а не путем вызова функции, как я могу это сделать?образец javascript для демонстрации Q2 используйте "var prop = A.property" not use "var prop = A.getProperty ()"
Ожидайте вашей помощи!Спасибо!