Javascript到原生Android调用在Android 4.2上无效

时间:2013-03-22 10:49:45

标签: javascript android

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

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

我知道为了使其适用于针对API级别17或更高级别的应用构建,必须使用@JavascriptInterface注释该方法。在那种情况下它有效。我遇到的问题是因为应用程序是为API级别10构建的,我无法访问@JavascriptInterface。

此时我能想到的是,如果应用程序是针对小于17的API级别构建的,那么在运行Android 4.2.2的设备上将无法使用。

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

  

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

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

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