js调用android的版本兼容问题

本文探讨了在Android API Level 17及以上版本中,JS无法调用Android代码的问题,并提供了解决方案:通过在调用方法上添加@JavascriptInterface注解。文章还展示了如何在WebView中实现此功能,并通过示例代码演示了与JS交互的过程。
1,在android API Level 17及以上的版本中,就会出现js调用不了android的代码,这是版本兼容的问题,需要在调用的方法上面加一个注解:@JavascriptInterface,这个注解需要导入一个包:import android.webkit.JavascriptInterface;

下面是代码:

@Override
	public void onCreate(Bundle savedInstanceState) {
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		super.onCreate(savedInstanceState);
		this.loadUrl("file:///android_asset/www/index.html");
		
		//给js设置调用的方法
		this.appView.addJavascriptInterface(new JavaScripdtObject(), "android");
		
	}
	/**
	 * 供js调用的对象方法
	 * 
	 * @author YUJIAN
	 * 
	 */
	public class JavaScripdtObject {

		@JavascriptInterface//加入这个注解
		public void runAndroidMethod(String str) {
			Toast.makeText(MainActivity.this, "被js调用"+str, Toast.LENGTH_SHORT)
					.show();
		}
	}
//js代码

function getNode4()
{
	var str = "javascrip木德";
	
	//调用android代码
	window.android.runAndroidMethod(str);
	
}
</script>

<input type="button" value="获取页面中的节点" onclick="getNode4()" />

转载于:https://my.oschina.net/u/936286/blog/161629

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值