Android中向webview注入js代码

来源:互联网 发布:国信优易数据有限公司 编辑:程序博客网 时间:2024/05/16 09:22

Android中向webview注入js代码可以通过webview.loadUrl("javascript:xxx")来实现,然后就会执行javascript后面的代码。

但是当需要注入一整个js文件的时候,需要先将js文件拼接到html文件后,在webview的onPageFinished方法中执行js代码注入。

第一种方法:

URL url = new URL("http://www.rayray.ray/ray.js");in = url.openStream();byte buff[] = new byte[1024];ByteArrayOutputStream fromFile = new ByteArrayOutputStream();FileOutputStream out = null;do {       int numread = in.read(buff);       if (numread <= 0) {         break;         }        fromFile.write(buff, 0, numread);     } while (true);String wholeJS = fromFile.toString();

onPageFinished方法中执行

@Overridepublic void onPageFinished(WebView view, String url)  {        super.onPageFinished(view, url);         webview.loadUrl("javascript:" + wholeJS); }

第二种方法:

首先将js拼接到html里面,这里的js地址可以是网络的,也可以是本地的例如file:///android_asset/http://www.123.456/789.js ,或者网络的

String js = "var newscript = document.createElement(\"script\");";js += "newscript.src=\"http://www.123.456/789.js\";";js += "document.body.appendChild(newscript);";

onPageFinished方法中执行

@Override public void onPageFinished(WebView view, String url)   {       super.onPageFinished(view, url);        webview.loadUrl("javascript:" + js);  }



0 0
原创粉丝点击