欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android js前端交互接收字符串问题

程序员文章站 2022-05-14 10:33:17
...

同样的方式调用传递图片和文字,传递文字方法始终无反应

js代码

//传递图片  
function downloadImg (el){
            var imgEls = $(el).parents(".listItem").find(".imgBoxInner img");
            if(imgEls.length == 0){
                    layer.msg('无素材');
            }else{
                var imgs=""
                for(var i=0;i<imgEls.length;i++){
                    imgs += "http://"+location.host+imgEls.eq(i).attr("src")+"|";
                }
                imgs = imgs.substr(0,imgs.length-1);
                if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
                    window.webkit.messageHandlers.saveImages.postMessage(imgs);
                } else if (/(Android)/i.test(navigator.userAgent)){
                    alert(imgs);
                    downImage.androidDownImage(imgs);
                }
            }
          
        }
//传递文字
        function copyText (el){
            var textTitle = $(el).parents(".listItem").find(".title").text();
            var textTime = $(el).parents(".listItem").find(".time").text();
            var textContent = $(el).parents(".listItem").find(".content").text();
            var textStr=textTitle+" "+textTime+" "+textContent;
            if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
                window.webkit.messageHandlers.copyText.postMessage(textStr);
            } else if (/(Android)/i.test(navigator.userAgent)){
                copyText.androidCopy(textStr);
            }
        }

android  只有主要代码,webview自己配置

  CopyText copyText = CopyText.getInstance();
        mWebView.addJavascriptInterface(copyText, "copyString");
        copyText.setContext(this,mWebView);



CopyText类


    /**
     * 复制文字
     */
    @JavascriptInterface
    public void androidCopy(String text) {
        log.e("复制文字--" + text);
        StringUtils.copyText(mContext,text);
    }
  • 导致无法调用原因  如图  两个方法一样导致Android中无法调用

android js前端交互接收字符串问题

  • 解决方法  1、修改js中方法    2、修改js中 copyText.androidCopy(textStr),copyText;Android中与之保持一致即可
相关标签: JS交互