【发布时间】:2012-12-11 11:35:46
【问题描述】:
我有一个添加了 javascript 界面的 webview,它可以在大多数设备上完美运行,除了那些运行 Android 4.2.1 的设备。
我删除了大部分代码,并保留了一个非常基本的代码:
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.setWebChromeClient(new WebChromeClient());
this.webView.addJavascriptInterface(new Object() {
public void handshake() {
Log.d("JS", "handshake no params");
}
public void handshake(String json) {
Log.d("JS", "handshake with params: " + json);
}
}, "Android");
在 javascript 方面,测试代码如下所示:
Android.handshake();
但我在 logcat 中得到了这个:
E/Web 控制台:未捕获的 TypeError:Object [object Object] 没有 方法“握手”
同样,同样的事情在我测试过的具有较旧 android 操作系统 (
奇怪的是,如果我开始一个全新的项目,只有一个只有一个 WebView 的 Activity,使用相同的代码,即使对于 4.2.1,一切都可以正常工作,但是当它是我实际项目的一部分时,东西坏了。 我提供的这个代码 sn-ps 中没有包含 webview,我没有做任何事情。
我最奇怪的是javascript找到了Android对象但它没有请求的方法(握手),怎么可能?
任何帮助将不胜感激,因为在过去的两周左右这一直让我发疯(这是我一直回到的错误,然后放弃,等等)。 谢谢。
【问题讨论】:
标签: javascript android webview