安卓html源码获取

首先标题本来想写成"安卓获取HTML调用js之后的源码"的,但是发现有点绕,哈哈,所以就简单写了.

关于安卓获取html源码,方法很简单,通过webview与js交互即可获取.说一下思路,安卓端新建接口,在接口中写需要与js端交互的方法,然后webview注册接口.在js端调用.具体代码如下

1.新建接口,记得将需要JS调用的方法加如图注释

 class AndroidInterface {
   
  @JavascriptInterface
        public void backActivity() {
            // 关闭本界面
            finish();
        }
  
}

2.注册接口,记得在loadURL之前注册.其中第一个参数为以上新建接口类,第二个参数为自定义字符串,该字符串需要在JS中使用,一定要记住改字符串.

mWebView.addJavascriptInterface(new AndroidInterface(), "android");

3.JS调用改方法,即可实现js调用安卓本地代码

function load() { 
//此处第二个名为"android"的字符串即为上面注册字符串,注意一致
               window.android.backActivity();         
 } 

4.安卓调用JS方法,代码如下

//第一个参数为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方法操作时,可以获取到动态数据代码.至于具体原因,需要进一步思考.问题已解决,花费了很久.

posted on 2019-06-19 18:39  飞扬飞  阅读(867)  评论(0编辑  收藏  举报