android Webview基本配置以及android与js交互

本文详细介绍了WebView的基本配置方法、Android与JavaScript的交互原理及实现过程。包括WebView设置、JS调用Android本地方法的具体步骤及示例代码,同时给出了Android调用JS方法的两种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直研究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+”’)”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值