WebView是html与Android直接联系的纽带,可以通过WebView实现Android调用web端内容方法,WebView也可以实现web端调用Android的方法并获取返回值。以下是对web端和android本地通过WebView交互方法的总结。
一:web端调用Android端
1)可以通过webview的addJavaScriptInterfance(Object 对象,String 对象名字)方法来实现,该方法需要android端建立一个含有希望调用的方法的对象,把该对象通过webview映射给web端,web端拿到映射到对象后就可以调用该对象的方法。打个比方,就是需要android端封装好一个带有指定方法的盒子通过webview的方法交给web端,并告诉web端盒子里方法的名字,web端拿到盒子后,一叫方法的名字,方法就自己蹦出来执行了。
上Android代码:
//android封装好的盒子,盒子里方法的名字叫hello
class AndroidBox{
@JavascriptInterface
public String hello(String str){
return str;//返回值web端可以拿到
}
}
//android把盒子交给web端的方法(ps:myWebView是一个最普通的webview,设置了支持js)
//参数1是带有方法的盒子,参数二是和web端约定的盒子的名字
myWebView.addJavascriptInterface(new AndroidBox(),"androidBox");
经过这样的设置,web端只要在html代码里调用androidBox对象的hello方法就能通过该webview调用android端的方法了
上web端html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>han&l