Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
本地Android调用的Javascript在Android 4.2上不起作用_Javascript_Android - Fatal编程技术网

本地Android调用的Javascript在Android 4.2上不起作用

本地Android调用的Javascript在Android 4.2上不起作用,javascript,android,Javascript,Android,我有一个Android应用程序,在其中我加载一个静态HTML页面。加载页面后,我想注入一些javascript,从javascript接口调用一个方法 问题是这个调用没有完成,我得到一个错误:对象没有方法。。。在安卓4.2.2设备上运行时 我知道,为了使其适用于API级别17或更高版本的应用程序,必须使用@JavascriptInterface对该方法进行注释。在这种情况下,它是有效的。我遇到的问题是,因为该应用程序是为API级别10构建的,我没有访问@JavascriptInterface的权

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

问题是这个调用没有完成,我得到一个错误:对象没有方法。。。在安卓4.2.2设备上运行时

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

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

你知道这是真是假吗

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

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

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

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

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


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

您可以尝试为API 17构建,但将最低版本设置得更低。类似于

您可以尝试为API 17构建,但将最低版本设置得更低。类似于

当您在模拟器上尝试时,发生了什么?仅在运行4.2和2.3.3的设备上尝试。适用于2.3.3,但不适用于4.2您可以尝试为API 17构建,但将最低版本设置得更低。差不多。我不确定这是否有效,这就是为什么这是一个注释,而不是一个答案。@mah Building for minSdkVersion 1-将不允许我访问JavascriptInterface注释。这是行不通的。但是谢谢你的尝试:@mah你说得对。将此作为答案发布,我将接受。当您在emulator上尝试时,发生了什么?仅在运行4.2和2.3.3的设备上尝试。适用于2.3.3,但不适用于4.2您可以尝试为API 17构建,但将最低版本设置得更低。差不多。我不确定这是否有效,这就是为什么这是一个注释,而不是一个答案。@mah Building for minSdkVersion 1-将不允许我访问JavascriptInterface注释。这是行不通的。但是谢谢你的尝试:@mah你说得对。将此作为答案发布,我将接受。感谢您的详细解释。在我发布评论后,我意识到它应该像@mah所说的那样工作。我很抱歉,但我会请他把这作为一个答案,我会接受他的。毫无怨言。值得一提的是,@commonware是我在乔治亚州森林深处的一次研讨会上的第一位安卓老师。听起来很吓人,但我向你保证没有解救,只是一个好的Android基础。谢谢你的详细解释。在我发布评论后,我意识到它应该像@mah所说的那样工作。我很抱歉,但我会请他把这作为一个答案,我会接受他的。毫无怨言。值得一提的是,@commonware是我在乔治亚州森林深处的一次研讨会上的第一位安卓老师。听起来很吓人,但我向你保证没有解救,只是一个好的Android基础。