关于android4.4中调用js的问题解决

在android4.4之前的版本,native调用webview中的js方法只需要使用一个webView.loadUrl("javascript:method()");就可以实现了。

在android4.4之后,此方法失效,官方提供了新的API来代替此方法:例

<span style="white-space:pre">	</span>webView.evaluateJavascript("method()", new ValueCallback<String>() {
						
				@Override
				public void onReceiveValue(String arg0) {
					// TODO Auto-generated method stub
				}
	});
如果将这段代码直接替换过去,大家会发现还是没有能够成功调用js方法,原因是因为此方法是一个异步的方法,我们可以使用一个Handler,在Handler里面执行这段方法;当然,这个方法在4.4之前的版本调用会报错,所以为了适配不同版本,我们需要对当前设备的SDK版本做个判断,例:

<span style="white-space:pre">	</span>Build.VERSION.SDK
这段代码就可以成功的获取到当前的SDK版本,判断下>=19的就需要调用 evaluateJavascript,否则还可以调用webView.loadUrl("');

列举下历史android系统对应的SDK:

API 1 -> android1.0

API 2 -> android1.1

API 3 -> android1.5(Cupcake)

API 4 -> android1.6(Donut)

API 5 -> android2.0(Eclair)

API 6 -> android2.0.1(Eclair)

API 7 -> android2.1(Eclair)

API 8 -> android2.2(Froyo)

API 9 -> android2.3(Gingerbread)

API 10 -> android2.3.3(Gingerbread)

API 11 -> android3.0(Honeycomb)

API 12 -> android3.1(Honeycomb)

API 13 -> android3.2(Honeycomb)

API 14 -> android4.0(IceCreamSandwich)

API 15 -> android4.0.3(IceCreamSandwich)

API 16 -> android4.1(Jelly Bean)

API 17 -> android4.2(Jelly Bean)

API 18 -> android4.3(Jelly Bean)

API 19 -> android4.4(KitKat)

API 20 -> android4.4(KitKat Wear)

API 21 -> android4.X.(L Preview)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值