我正在构建一个必须与 api 14 及更高版本兼容的 android 应用程序。我在 javascript 界面中有 1 个方法。
从 api 17 开始,您必须向方法添加注释@JavascriptInterface
,但是向后 api 不支持注释,因为该应用程序是 api 14 的目标,所以出现错误。但如果我不添加注释,则在 Android 4.2 的移动设备中不会触发 javascript。
如果 deviceOs 比 4.2 更新,是否可以制作 ifdef?
我正在构建一个必须与 api 14 及更高版本兼容的 android 应用程序。我在 javascript 界面中有 1 个方法。
从 api 17 开始,您必须向方法添加注释@JavascriptInterface
,但是向后 api 不支持注释,因为该应用程序是 api 14 的目标,所以出现错误。但如果我不添加注释,则在 Android 4.2 的移动设备中不会触发 javascript。
如果 deviceOs 比 4.2 更新,是否可以制作 ifdef?
将您的构建目标设置为 API 级别 17。将您设置android:minSdkVersion
为您想要支持的 Android 版本。然后您的代码将编译并具有@JavascriptInterface
注释。Lint 会在代码中指出您使用的类、方法等比您android:minSdkVersion
的 .
或者,将您的值设置android:targetSdkVersion
为 16 或更低,在这种情况下@JavascriptInterface
不需要。请参阅http://developer.android.com/guide/webapps/webview.html#BindingJavaScript。