首先标题原本想写成"安卓获取HTML调用js以后的源码"的,可是发现有点绕,哈哈,因此就简单写了.html
关于安卓获取html源码,方法很简单,经过webview与js交互便可获取.说一下思路,安卓端新建接口,在接口中写须要与js端交互的方法,而后webview注册接口.在js端调用.具体代码以下jquery
1.新建接口,记得将须要JS调用的方法加如图注释android
class AndroidInterface { @JavascriptInterface public void backActivity() { // 关闭本界面 finish(); } }
2.注册接口,记得在loadURL以前注册.其中第一个参数为以上新建接口类,第二个参数为自定义字符串,该字符串须要在JS中使用,必定要记住改字符串.web
mWebView.addJavascriptInterface(new AndroidInterface(), "android");
3.JS调用改方法,便可实现js调用安卓本地代码ide
function load() { //此处第二个名为"android"的字符串即为上面注册字符串,注意一致 window.android.backActivity(); }
4.安卓调用JS方法,代码以下lua
//第一个参数为js中的方法名,该段代码每执行一次则调用js方法一次 mWebview.evaluateJavascript("window.hasUserEditData()", new ValueCallback<String>() { @Override public void onReceiveValue(String value) { //这里为返回值 //todo } });
5.重点说一下这次开发过程当中遇到的问题.由于业务须要,Html执行JS代码会动态添加数据,而后安卓获取执行以后html代码,并保存到文件中,可是一直发现安卓获取到的Html代码为执行JS以前的代码.经过尝试后发现使用jquery执行val时,获取到代码无动态数据,可是执行attr方法操做时,能够获取到动态数据代码.至于具体缘由,须要进一步思考.问题已解决,花费了好久.spa