美文网首页
Android和H5交互

Android和H5交互

作者: Nicole被占用 | 来源:发表于2018-02-28 09:13 被阅读0次

            由于可以随时更新,H5现在越来越火,webView+H5的开发方式也越来越多,自然就需要android和H5交互.

            没有H5配合,自己在本地模拟一下:在src/main/ 新建一个Floder 选择assets,然后新建一个html文件.webView设置参数的时候其余的和一般的加载一样,只不过加上一个设置:

    webView.addJavascriptInterface(mContact,"mContact");

    webView.loadUrl(url);

    注意:----------------------------------------------------------------------------------------------

    1.url如果是网络地址那直接写入,如果是本地的那么url为"file:///android_asset/xxx.html"  xxx为你的html名

    2.mContact是我当前activity的一个内部类Contact的实例,里面有一个getOrderNo方法,Contact类代码如下:

    /**

    * android contact with js

    */

    public final class Contact {

    //JavaScript use this method sending data to android

        @JavascriptInterface

        public void getOrderNo(String response) {

        System.out.println("点击了支付");

    }

    因为方法要被js调用并且传递参数,所以在方法上面加上 @JavascriptInterface,参数这边用String

    3.webView.addJavascriptInterface(mContact,"mContact");此目的为了把对象传给js,js直接调用,下面会写出js相关代码

    4.如果需要调用js方法并且给js传递参数 在当前activity可以添加

    //android use this method sending data to js

    public void paymentResult(String result) {

    // use js's method 'showInfoFromAndroid(msg)'

        webView.loadUrl("javascript:showInfoFromAndroid(result)");

    }

    ------------------------------------------------------------------------------------------------------

    下面为js核心代码:

    var data="111"

    //use android's method

    function pay(){

    window.mContact.getOrderNo(data);(此处"mContact"就是android里面的实例对象,getOrderNo就是方法名)

    }

     //android use this method 

      function showInfoFromAndroid(msg){  

        alert("msg"+msg);  

      }  

    相关文章

      网友评论

          本文标题:Android和H5交互

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