【发布时间】:2013-05-13 18:21:55
【问题描述】:
我遇到了@JavaScriptInterface annotation 要求支持 api 15 (ICS) 和 17 (JB) 的问题。我有一个由两个应用程序项目共享的 Android 库项目。库项目包含带有javascript interfaces 的WebView 相关类。对于应用程序项目,其中一个以 api 15 为目标,而另一个以 api 17 为目标。这是我们的要求/约束,因为我们使用定制的 Android SDK。
问题是如何使库项目与两个应用程序项目一起工作。如果库项目以 api 15 为目标,则不能有 @JavaScriptInterface 注释,这意味着 javascript 回调将无法与 api 17 应用程序项目一起使用。
另一方面,如果库项目以 api 17 为目标,它将无法与 api 15 应用程序项目一起使用,因为应用程序项目无法与更高 api 级别的库项目链接。
关于如何让库项目中的 javascript 接口类同时适用于 api 15 和 api 17 应用程序项目的任何建议?
【问题讨论】:
-
我正在研究的一种方法是使用依赖注入的方法。库项目使用自定义注释,其中 api 17 项目注入 @JavaScriptInterface 而 api 15 项目注入 noop。但是,这似乎是不可能的,因为 JDK 6 中的注解不支持继承。
标签: javascript android annotations android-webview android-4.2-jelly-bean