1

我有一个 Android 应用程序,我正在其中加载一个静态 HTML 页面。加载页面后,我想注入一些 javascript,这些 javascript 将从我的 Javascript 接口调用方法。

问题是在装有 Android 4.2.2 的设备上运行时,此调用未完成(我收到错误:“对象没有方法...”)。

我知道,为了使它适用于为 API 级别 17 或更高级别构建的应用程序,该方法必须使用 @JavascriptInterface 进行注释。在这种情况下,它可以工作。我遇到的问题是因为该应用程序是为 API 级别 10 构建的,我无权访问 @JavascriptInterface。

在这一点上,我能想到的是,如果应用程序是为小于 17 的 API 级别构建的。这将不适用于运行 Android 4.2.2 的设备。

如果这是真的,你有什么想法吗?

4

2 回答 2

4

您可以尝试为 API 17 构建,但将最低版本设置得更低。类似 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>

于 2013-03-22T13:19:03.473 回答
3

我遇到的问题是因为该应用程序是为 API 级别 10 构建的,我无权访问 @JavascriptInterface。

将您的构建目标更改为 API 级别 17(例如,在 Eclipse 中,转到 Project > Properties > Android)。将您设置android:minSdkVersion为 10,Lint 会指出您使用 API 级别 17 上存在但 API 级别 10 上不存在的东西的地方。

此时,您将能够使用@JavascriptInterface. @TargetApi根据 Lint 投诉,您可能还需要添加合适的注释。

于 2013-03-22T11:30:54.040 回答