android Webview基本配置以及android与js交互
最近一直研究webview的使用,包含webview配置、android与js的交互。不多说了。
1、这部分代码写在Activity中就可以(下载是webview基本设置):
WebSettings settings = webView.getSettings();
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
settings.setDomStorageEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setJavaScriptEnabled(true);
settings.setAllowFileAccess(true);//设置可以访问文件
settings.setSupportZoom(false);//不支持缩放
settings.setBuiltInZoomControls(false);//设置此属性,可任意比例缩放
//JsCallAndroidLocal该类是JS与android交互时,JS调用android本地方法的类
webView.addJavascriptInterface(new JsCallAndroidLocal(this,this),”Android”);
//MyWebClient继承WebViewClient: 是主要处理使用WebView进行网页的浏览,不调用本地的浏览器
webView.setWebViewClient(new MyWebClient());
//MyWebChormClient继承WebChromeClient:主要处理对网页中加载时,此时本地可对应显示加载框
webView.setWebChromeClient(new MyWebChormClient(mHandler));
//加载页面
webView.loadUrl(url);
注意:js文件放在你创建的android项目的assets文件下,创建一个js文件夹,然后可以把你的.js文件 放到这个js文件夹中
2.JS 调用android本地方法
流程是这样,点击网页中的按钮调用到android本地的方法打印一串文本。
首先准备test.html 和webview_videoplayer.js文件,通过点击按钮,调到本地
webview_videoplayer.js:
/**
* 调用android本地方法
*/
function playVideo(videoUrl){
window.Android.gotoPlayVideo(videoUrl);
}
/**
*从网页中获取videoUrl
*/
function getVideoUrl(){
var videoUrl = document.getElementById("videoUrl");playVideo(videoUrl.value);
}
在HTML中调用:
html中引用JS文件 “src=js/webview_videoplayer.js”
调用JS中的方法,通过JS调用android本地gotoPlayVideo()
test.html <html> <head> <meta charset="UTF-8"> <title>title> <script type="text/javascript" src="js/webview_videoplayer.js" >script> head> <body> <input type="button" name="playVideo" value="播放" onclick="getVideoUrl()"/> body>html>
整理一下顺序就是这样
JS调用android本地方法
//JsCallAndroidLocal该类是JS与android交互时,JS调用android本地方法的类
初始化webview的时候设置上js调用android本地方法的类
webView.addJavascriptInterface(new JsCallAndroidLocal(this,this),"Android");
public class JsCallAndroidLocal { private Context mContext = null; public JsCallAndroidLocal(Context context){ this.mContext = context; } /** * @Description: JS调用安卓本地方法 */ public void gotoPlayVideo(String videoUrl) //TODO //打印 }}
先通过网页调用js文件中方法,js文件明确写好调用gotoPlayVideo()这个android本地的方法,参数必须对应上,否则不能正确调到android本地方法,这样js就可以调到android本地方法了。
3、android 调用JS(android调用本地js文件)
(1)调用无参数的JS方法
通过webView.loadUrl();这个方法调用你本地的JS方法
webView.loadUrl(“javascript:getBaseInfo()”);
(2)调用有参数的JS方法
webView.loadUrl(“javascript:getBaseInfo(‘”+uid+”’,’”+id+”’,’”+userName+”’)”);
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- python list.sort()根据多个关键字排序的方法实现
- Android常用的工具类
- android取得账户(邮件地址)
- Android中添加布局和初始化布局总结
- android--------根据文件路径使用File类获取文件相关信息