5***@qq.com
5***@qq.com
  • 发布:2017-04-27 17:42
  • 更新:2017-04-28 10:41
  • 阅读:1160

android webview里 写nativeJs 的一些代码 都没反应

分类:Native.js

原本这个app是纯原生的 现在加了一个项目在里面,都是我(前端)来写,然后html css js 都可以,也可以互相调用(安卓、ios调我JS,我调安卓、ios方法),也上线了,除了个别机型拍照有问题外,其它都没什么问题。
但是我从头到位就没有用到native.js,我现在想自己写个保存图片的功能,在网页上直接一个a标签,再加个download属性,就可以直接下载了。然后现在是webview里,我在网上找了个例子,然后在hbuild里打包运行就可以,放到webview里就不可以。

function saveGallery(url) {  
        var dtask = plus.downloader.createDownload(url, {}, function (d, status) {  
            // 下载完成  
            if (url!=="") {  
                var filepath = plus.io.convertLocalFileSystemURL(d.filename);  
                // console.log(filepath);  
                // 保存相册  
                plus.gallery.save(filepath);  
                plus.nativeUI.alert("保存成功");  
                // 删除  
                plus.io.resolveLocalFileSystemURL(filepath, function (entry) {  
                    entry.remove(function (e) {  
                    }, function (e) {  
                    });  
                }, function (e) {  
                });  

            } else {  
                plus.nativeUI.alert("Download failed: " + status);  
            }  

        });  
        //dtask.addEventListener( "statechanged", onStateChanged, false );  
        dtask.start();  
    }

是什么原因呢?怎么让webview支持呢?

2017-04-27 17:42 负责人:无 分享
已邀请:
LLgg

LLgg

看一下下面这个代码,是不是符合你的要求,压缩包源代码文件和app案例,我已经放在尾部的附件中了,记得下载看一下。
index.html文件↓↓↓↓↓↓

<!DOCTYPE html>  
<html>  
    <head>  
    <meta charset="utf-8">  
<meta content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">  
    <title>长按屏幕下载中旋网的图片</title>  
    </head>  
    <body>  
    <script>            
           var web=null;  
              function plusReady(){  
           var styles={top:"0px",bottom:"0px",bounce:'vertical'};  
                    web=plus.webview.create('http://www.zxlmweb.com/index.php?m=3g&c=read&tid=16064','',styles);  //打开中旋网的一个图片网址,  
                    plus.webview.currentWebview().append( web );  
                     setTimeout(function(){  
                    web.appendJsFile('/js/script.js')     //调用长按屏幕下载图片的的js  
                    },1000)  
                    web.appendJsFile('/js/mui.min.js')    //mui必须的js文件  
                }     
                if(window.plus){  
                    plusReady()  
                }else{  
                    document.addEventListener('plusready',plusReady,false)  
                }  
        </script>  
    </body>  
</html>  

<!--这是我的网站,O(∩_∩)O谢谢支持,中旋网ZxlmWeb(www.zxlmweb.com)-->

script.js文件(引用的图片下载js文件)↓↓↓↓↓↓

mui.init({  
    gestureConfig: {  
        longtap: true, //默认为false  

    }  
});  
document.addEventListener('longtap', function(e) {  
    if (e.target.tagName == "IMG") {  
        mui.plusReady(function() {  
            mui.confirm('主人,是否要下载这张图?', '确认下载', '下载', function(d) {  
                if(d.index==0){  
                var down = plus.downloader.createDownload(e.target.src, {}, function(e, a) {  
                    console.log();  
                    plus.gallery.save(e.filename,function (e) {  
                    mui.toast('中旋网的图片已经下载完成了,请打开相册查看')  

                    },function (e) {  
                        mui.toast("中旋网的图片下载失败了~~~~~~~~~~~(>_<)~~~~");  
                    })  
                })  
                down.start()  
                }  
            })  
        })  

    }  
})  

//这是我的网站,O(∩_∩)O谢谢支持,中旋网ZxlmWeb(www.zxlmweb.com)

这是我的网站,O(∩_∩)O谢谢支持----->>中旋网ZxlmWeb

该问题目前已经被锁定, 无法添加新回复