设置targetSdkVersion属性会导致在WebView中忽略JavascriptInterface

时间:2013-07-24 21:30:58

标签: android android-webview

真是奇怪的问题。我有一个申请。此应用程序打开一个网页,允许用户在显示结果页面时填写表单数据并提取数据。一切正常,直到我将android:targetSdkVersion="17"添加到uses-sdk部分。如果在AndroidManifest.xml

中添加此行,则JavascriptInterface不起作用

使用此 - &gt; < uses-sdk android:minSdkVersion="10" />

不适用于此 - &gt; < uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>

是否有人遇到过相同或类似的问题?没有在Manifest中设置targetSdkVersion有什么问题吗?

1 个答案:

答案 0 :(得分:2)

  

是否有人遇到过相同或类似的问题?

是。它甚至包含在the documentation for addJavascriptInterface()中:

  

对于针对API级别JELLY_BEAN_MR1及更高版本的应用程序,只能从JavaScript访问使用JavascriptInterface注释的公共方法。对于针对API级别JELLY_BEAN或更低级别的应用程序,可以访问所有公共方法(包括继承的方法)...

只需将您的构建目标(例如,项目&gt;属性&gt; Eclipse中的Android)设置为API级别17+,并将@JavascriptInterface添加到您希望Javascript代码能够访问的方法中。