我有一个Android应用,我正在加载一个静态HTML页面。一旦页面加载,我想注入一些javascript,它将从我的Javascript接口调用一个方法。
问题是,在使用Android 4.2.2的设备上运行时,此调用未完成(我收到错误:“对象没有方法......”)。
我知道为了使其适用于针对API级别17或更高级别的应用构建,必须使用@JavascriptInterface注释该方法。在那种情况下它有效。我遇到的问题是因为应用程序是为API级别10构建的,我无法访问@JavascriptInterface。
此时我能想到的是,如果应用程序是针对小于17的API级别构建的,那么在运行Android 4.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
注释。