安卓与JS交互

安卓与JS交互,修改网页内容

在webView开发中,经常会使用到安卓Activity与网页之间的互相调用,之前项目中有一个功能需要进行网页的获取通过点击网页内容进行相关的跳转,直接上代码:

以腾讯视频的一个链接为例

String strUrl = "https://m.v.qq.com/x/cover/q/q36vxbd95odijk1.html?=";
  • 首先需要webView支持JS
WebSettings setting = mWeb.getSettings();
setting.setJavaScriptEnabled(true);//设置webView支持JS

创建JavascriptInterface

 // js通信接口
    final class JavascriptInterface
    {

        private Context context;

        public JavascriptInterface(Context context)
        {
            this.context = context;
        }

        @android.webkit.JavascriptInterface
        public void open()
        {
            Toast.makeText(context, "123", Toast.LENGTH_SHORT).show();
        }
    }

webView调用JavascriptInterface

addJavascriptInterface(new JavascriptInterface(this), "tnsoft");

之后,我们需要重写WebViewClient,并在onPageFinished方法里进行修改网页的操作

//将登陆这两个文字改成已登录
videoWeb.loadUrl("JavaScript:function setBack(){document.querySelector('.btn_user_text').innerHTML=('已登录');return}setBack();");

 //将显示的海报图片替换//
videoWeb.loadUrl("javascript:(function () { " + "$(\".poster_pic\").attr('src','http://app.cglife.top/1.jpg');" + "})()");
//将显示的海报图片位置移动到最外层
videoWeb.loadUrl("javascript:(function () { " + "$(\".player_poster\").css('z-index','99999');" + "})()");

//将修改后的图片里写入onclick事件,并通过点击海报,跳转到app里的某一个activity中去
videoWeb.loadUrl("javascript:(function () { " + "$(\".poster_pic\").click(function(){window.tnsoft.open()});" + "})()");

注:click里的点击事件中的tnsoft需要与JavascriptInterface里的字符串一致

效果图
* 安卓与JS交互_第1张图片*

安卓与JS交互_第2张图片

资源链接
http://download.csdn.net/download/weixin_37912278/10158114


你可能感兴趣的:(安卓与html5交互)