android webview 调用js更换html文件里面的图片

生姜可乐 发布于 2014/05/21 17:50
阅读 3K+
收藏 1

具体是这样的:一个邮件的附件是html文件,首先用webView加载了服务端返回的html字符串,如下

mWebView.loadData( getIntent().getStringExtra("html_str"),
		 "text/html;charset=UTF-8", null);



然后需要调用js方法,来替换里面的图片,js代码如下:

function myFunction() {
    var getPrivateImgUrl = "http://192.168.1.92/channel/mailChannelAction/openImage?archGroup=arch1&archVol=/home/dpost/channel/work/disk1/20140507/182727.1.v1&archStart=34934055";
    var imgMetaStr = "body:0:11083;xlgz.jpg:11083:11028;wujiao.jpg:22111:12766;tshly.jpg:34877:49384;guangg4.jpg:84261:50436;hy.jpg:134697:11246;top2.jpg:145943:31470;kx.jpg:177413:11349;qqgz.jpg:188762:11358;lip.jpg:200120:13348;top.jpg:213468:81473;huank.jpg:294941:49906;guangg2.jpg:344847:43483;guangg3.jpg:388330:49243;rr.jpg:437573:11496;guangg1.jpg:449069:103146;xl.jpg:552215:12433;qq.jpg:564648:12199;qianbi.jpg:576847:13277;tshl.jpg:590124:28571;tshlz.jpg:618695:68500";
    var imgs = document.getElementsByTagName('img');
    for (var v = 0; v < imgs.length; v++) {
        var imgSrc = imgs[v].src;
        var imgSrcArr = imgSrc.split('/');
        var imgName = imgSrcArr[imgSrcArr.length - 1];
        if (imgSrc.substring(0, 4) != 'http' && imgMetaStr.indexOf(imgName) != -1) {
            imgs[v].src = getPrivateImgUrl + "&imageName=" + imgName;
        }
    }
}

问题就是:Android里面怎么用webview调用js这一段代码。求指教,谢谢

加载中
0
火蚁
火蚁
有两种解决的方案:
  1. 用网页的方式把这段js代码包起来,然后跟你显示的内容进行拼接成body,最后:mWebView.loadDataWithBaseURL(null, body, "text/html", "utf-8",null);
  2. 作为一个js文件放在资源文件中,在代码中引入:linkJs = "<script type=\"text/javascript\" src=\"file:///android_asset/your.js\"></script>",最后也是用webview来加载了:mWebView.loadDataWithBaseURL(null, body + linkJs, "text/html", "utf-8",null);

可以看下这篇博客:http://my.oschina.net/LittleDY/blog/213941

火蚁
火蚁
回复 @生姜可乐 : 没关系,设置最佳是不用积分的,你那个操作是顶,最佳答案是在下面打勾的....
生姜可乐
生姜可乐
回复 @火蚁 : 我是准备设为最佳答案的,无奈积分不够,实在抱歉
Zoker
Zoker
回复 @生姜可乐 : 我来助攻,解决问题要设最佳。
火蚁
火蚁
回复 @生姜可乐 : 选最佳是个好习惯
生姜可乐
生姜可乐
效果实现了,十分感谢
返回顶部
顶部