Android中向webview注入js代码
16lz
2021-01-23
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); }
更多相关文章
- 总结Android中TabActivity 的使用方法
- Android手机拨打电话、手动发送短信与自动拨打电话、自动发送短
- Android SDK编译 ——如何将自己源代码加入android.jar
- Android 资源文件夹下的文件不能有大写字符,会导致R.java无法生成
- Android 高级混淆和代码保护技术
- 子线程更新UI的方法
- Android真机测试 INSTALL_FAILED_INSUFFICIENT_STORAGE 解决方法
- Android Audio代码分析1 - AudioTrack使用示例