Android webView 实现与JS


1、Android中webView调用网页上的Js代码

需要将webView控件的js属性设置为true;

mWebView.getSettings().setJavaScriptEnabled(true);
	// 调用网页上的js函数方法test(), 不传递参数
mWebView.loadUrl("javascript:test()");


// 调用网页js函数方法test(String str),需要传递参数

mWebView.loadUrl("javascript:test('"+sss+"')";
 
//调用本地assets目录下的html文件,也可以直接调用网上的html文件。

	mWebView.loadUrl("file:///android_asset/index.html");


2、网页调用android端的java方法:
 
       //在Android的Java代码中需要设置webView空间的属性addJavascriptInterface, 
	//第一参代表用调用的类对象, 第二参数代表对象名可以自定义
	mWebView.addJavascriptInterface( new Object(),"objectName");
	// 其中Obejct类如下,定义了一个类
	class Object(){
		//类方法一
		public void AndroidMethod1(){ ... }
		//类方法二
		public void AndroidMedthod2( int i){ ...}
		...
	}

  例如:在网页中调用Android的方法1,只需要像调用Js方法一样,进行调用就可以了
	//调用方法一,不需要传递参数
	<div id='b'><a οnclick="javascript:window.objectName.AndroidMethod1()">b.c</a></div>
	在页面加载立即带用
	<body οnlοad="javascript:window.objectName.AndroidMethod1()">
	// 调用方法二,需要传递参数
	
	<div id='b'><a οnclick="javascript:window.objectName.AndroidMethod2( 8 )">b.c</a></div>
 



3、WebViewClient和 WebChromeClient的简单介绍

(1) WebViewClient主要用于处理WebView的各种通知、请求事件

(2) WebChromeClient主要用于处理JavaScript的弹出对话框、网站图标、网站titile、加载进度等

4、DownloadListener的使用,用于支持WebView文件下载

eg:mWebView.setDownloadListener(new MyWebViewDownLoadListener());

private class MyWebViewDownLoadListener implements DownloadListener{

@Override
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype, long contentLength) {


Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值