美文网首页我爱编程
android和H5交互

android和H5交互

作者: 繁天涯 | 来源:发表于2018-03-16 21:47 被阅读0次

    最近在做一个蓝牙项目,需要用到图表,感觉H5的图表要比android一些第三方控件要简单灵活一些,之前一直用的是原生开发,于是对android和H5交互传递数据做了一些研究,下面对最近的研究做一些记录:

    第一种是直接调用JS里面的方法,不用等到页面加载完成,简单讲就是该js方法不需要写在onload方法里面或者Jquery的页面加载回调方法中。但是,要调用在在onload方法里面或者Jquery的页面加载回调方法中的方法,这样是不可以的,那么怎么做才能调用呢?看第二条。

    1.用到的android原生控件是传统的WebView,还需要会一些简单的HTML5的基础知识。

    //从xml中获取WebView控件对象

    WebView wv=(WebView)findViewById(R.id.wb);

    //获取WebView的Setting配置对象

    WebSettings ws=wv.getSettings();

    //设置WebView是否可以执行javascript

    ws.setJavaScriptEnabled(true);

    //设置WebView是否支持缩放

    ws.setSupportZoom(true);

    //创建WebViewClient对象

    wv.setWebViewClient(new WebViewClient());

    //创建WebViewChromeClient 

    wv.setWebChromeClient(new WebChromeClient());

    2.html文件放到main下的assets目录下,使用的时候采用loadUrl()将“file:///android_asset/myAndroid.html”参数传递进来。

    //将assets目录下的HTML加载到WebView

    wv.loadUrl("file:///android_asset/myAndroid.html");

    3.WebView有一个addJavascriptInterface()方法,可以获取从HTML文件中获取数据传递到android程序中,然后渲染原生控件。

    //HTML数据传过来在android程序中的数据接口

    wv.addJavascriptInterface(new AsForjs(this),"Android");

    final String str="这是一个来自android的数据";

    以上是简单调用js中不写入页面加载完成回调里面的方法,如果想调用这里面的方法,可以将script标签写到body最后

    直接看代码吧:https://github.com/wxp19940506/AppTransHtml.git

    相关文章

      网友评论

        本文标题:android和H5交互

        本文链接:https://www.haomeiwen.com/subject/bgorqftx.html