android与js交互(二)

来源:互联网 发布:战术无线通信与网络 编辑:程序博客网 时间:2024/06/05 11:33

下面讲诉一种更简单的android与js交互的方法(对于js不好的同学帮助很大~~~)

<html><head>    <title>学习单详情</title>    <meta charset="utf-8">    <meta name="viewport"          content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">    <meta content="telephone=no" name="format-detection">    <link href="http://218.17.158.37:8880/marketGateway/css/style.css" rel="stylesheet">    <script>       var imgurls='';       /**        *初始化获取所有图片的链接,“,”隔开        */      window.onload =  function init(){         var objs = document.getElementsByTagName("img");         for(var i=0;i<objs.length;i++)         {            imgurls+=objs[i].src+',';         }         console.log(imgurls);       }       /**        *打开doc,pdf,excel 文档        *@param type 文档类型        *@param url 文档地址        */       function openDocument(type,url){           console.log(type+"***"+url);           androidlistner.openDocument(type,url);           return false;       }        /**        *打开图片        *@param position 第几张图片        *@param url 所有图片地址        */       function openImage(position,url){          console.log(position+"***"+url+"***"+imgurls);          androidlistner.openImage(position,url,imgurls);          return false;       }      /**        *打开浏览记录        */       function openBrowseRecord(){            console.log("openBrowseRecord");          androidlistner.openBrowseRecord();          return false;       }    </script></head><body><div id="content">    <div class="adv">        <img onclick="openImage('0','http://static.kocla.com/kocla/2015-08-10/8a20ae9c468ac4400146a85f5d17233e/document/8e7fc84f732a4da69038e7df0e491309.jpeg')"             src="http://static.kocla.com/kocla/2015-08-10/8a20ae9c468ac4400146a85f5d17233e/document/8e7fc84f732a4da69038e7df0e491309.jpeg"/>    </div>    <div class="padbox">        <div class="box-title">            <h2><span class="fr">2015-08-10 16:15:53</span>科学有序的进行</h2>            <div class="tag">                <span>小学</span>                <span>三年级</span>                <span>科学</span>                <span>学习单</span>            </div>            <div class="sort">            </div>            <div class="source"><span class="fr icon-tag" onclick="openBrowseRecord()">0/0</span>来源:获取            </div>            <div class="text">三个王国</div>        </div>    </div>    <!--padbox-->    <div class="padbox">        <h2>科学有序的进行</h2>        <div class="text c-666 p-tb05"></div>        <div class="padbox"><h3>人工智能</h3>            <div class="text c-666 p-tb05">可很快就会可能不够</div>            <ul class="list-txt">                <li class="icon-3"><a                        onclick="openDocument('1','http://static.kocla.com/kocla/2015-08-10/8a20ae9c468ac4400146a85f5d17233e/document/50fab07c5ed14f9c9fe7c6451a7f6c6f.doc')"                        href="http://static.kocla.com/kocla/2015-08-10/8a20ae9c468ac4400146a85f5d17233e/document/50fab07c5ed14f9c9fe7c6451a7f6c6f.doc">流程检索</a>                </li>            </ul>            <h3>机器人的世界</h3>            <div class="text c-666 p-tb05"></div>        </div>    </div></div></body></html>
 private class MyWebViewClient extends WebViewClient {        // 当点击链接时,希望覆盖而不是打开新窗口        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url); // 加载新的url            return true; // 返回true,代表事件已处理,事件流到此终止        }        @Override        public void onFormResubmission(WebView view, Message dontResend, Message resend) {            super.onFormResubmission(view, dontResend, resend);            resend.sendToTarget();        }        @Override        public void onPageStarted(WebView view, String url, Bitmap favicon) {            super.onPageStarted(view, url, favicon);            progressBar.setVisibility(View.VISIBLE);        }        @Override        public void onPageFinished(WebView view, String url) {            super.onPageFinished(view, url);            addImageClickListner();            progressBar.setVisibility(View.GONE);        }    }

//——————————————-

  // js通信接口    class JavaScriptInterface {        JavaScriptInterface() {        }        /**         * This is not called on the UI thread. Post a runnable to invoke         * loadUrl on the UI thread.         */        @JavascriptInterface        //public void clickOnAndroid(String url) {        public void openBrowseRecord() {             //添加自己的业务        }        @JavascriptInterface        public void openImage(String img, int position, String allUlrs) {            //SuperToastManager.makeText(getActivity(), img + ", " + position+" ," +allUlrs).show();            String[] imgs = allUlrs.split(",");            ArrayList<String> imgsUrl = new ArrayList<String>();            for (String s : imgs) {                imgsUrl.add(s);            }            //浏览所有图片            Intent intent = new Intent();            intent.putStringArrayListExtra("ImageUrl", imgsUrl);            intent.putExtra("CurrentPosition", position);            intent.setClass(getActivity(), Activity_ImageReview.class);            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            getActivity().startActivity(intent);        }        @JavascriptInterface        public void openDocument(int type,String url ) {            SuperToastManager.makeText(getActivity(),type+", "+url).show();            mUrl = url;            //添加自己的业务        }    }    private void addImageClickListner() {        //调用 HTML 中的javaScript 函数        wv_Show_Document.loadUrl("javascript:void()");    }
0 0
原创粉丝点击