我正在构建一个 Android 应用程序,该应用程序必须与 api 14 及更高版本兼容。我在 javascript 接口(interface)中有 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 .
关于android - 使 javascript 注入(inject)兼容 api 16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16213928/