JavaScriptInterface()在JellyBean中不起作用

时间:2012-12-17 09:10:32

标签: android javascript-events android-webview

我刚从ICS到Jelly Bean的Galaxy Tab2软件更新。 我正在开发一个应用程序,我正在加载一些带有一些js文件的Html,调用一些函数在Javascript文件中编写,一切正常,在Android设备上完全测试(手机和平板电脑(4.0.1)),但是之后在平板电脑上更新,它停止工作。 在使用JavaScriptInterface()调用js函数时,我没有收到任何响应。任何想法?????

2 个答案:

答案 0 :(得分:3)

这一定是问题所在:

  

仅适用于针对API级别JELLY_BEAN_MR1及更高版本的应用程序   使用JavascriptInterface注释的公共方法可以是   从JavaScript访问。

文档更新here。我也看到有人报告说他们必须fiddle with proguard,但我自己并没有偶然发现。

答案 1 :(得分:1)

只是有完全相同的问题,维陶塔斯是正确的。 真的很令人沮丧。我的项目中的所有东西都在Jelly Bean API16上正常工作,然后我在API17上尝试了它并且它已经瘫痪了。只需添加

<强> @JavascriptInterface

public void showToast(String toast)  {
    // show toast ...
}

将此项包含在也支持以前API版本的项目中,需要在项目设置中选择API 17(或更高版本)的构建目标。

  • 从“项目”菜单中单击“属性”
  • 点击左侧列表中的Android。
  • 检查API级别为17(我点击了GOOGLE API 4.2)