欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

app嵌套h5,点击保存图片到相册的功能 有大用

这个其实建议调原生的方法就好,不要研究什么h5 plus方法了还有什么miu什么的,用了也是各种错误,原生的直接保存到相册还是很方便的,我也是研究了好久,都没有研究出来,最后原生超级简单!

来自  https://blog.csdn.net/weixin_39701533/article/details/82994018?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param




js保存图片到手机相册(ios与android通用)


1、将图片上传到后台,拷贝链接。


2、

Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载文件,符合标准HTTP/HTTPS传输协议。

方法:


详情链接:http://www.html5plus.org/doc/zh_cn/downloader.html#plus.downloader.DownloadOptions

Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。通过plus.gallery获取相册管理对象。

方法:

  • pick: 从系统相册选择文件(图片或视频)

  • save: 保存文件到系统相册中


// 保存图片到相册中 

function savePicture() {

// 创建下载任务
picurl="http://*************/Public/Uploads/dingwei/erwei.png";
//图片保存到手机后的路径
picname="_downloads/erwei.png";
var dtask = plus.downloader.createDownload(picurl, {}, function ( d, status ) {
// 下载完成
if ( status == 200 ) { 
//  alert( "Download success: " + d.filename );
plus.gallery.save(picname,function() {//保存到相册方法
mui.toast('已保存到手机相册');
}, function() {
mui.toast('保存失败,请重试!');
});
} else {
//  alert( "Download failed: " + status ); 
}
});
//dtask.addEventListener( "statechanged", onStateChanged, false );
dtask.start();//开始下载

}

3、参考资料:https://ask.dcloud.net.cn/article/807


来自  https://blog.csdn.net/qq_26652185/article/details/79608347?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242




前端如何保存图片?并在相册中查看。

第一次接触混合开发,然后碰到了很多H5+api,调用手机相册,扫码,保存图片等。做技术的注定了要终生学习,但学无止境,我们不可能把所有的知识技能都学完了,学精通了再去工作,我们需要在工作中去提升自己,在工作红去总结去成长。

我项目是用mui加H5+去开发的,所以在调用H5+的api时要等plusready事件发生后才能正常使用。

  1. mui.plusReady(function(){
  2. //在这里面写你所调用的api
  3. plus.downloader.createDownload(url, options, completedCB);
  4. //url:必选, 要下载文件的url地址,仅支持网络资源地址,支持http或https协议
  5. //option:可选
  6. //completedCB:可选, 下载完成时触发,不管成功或者失败都会触发此回调
  7. completedCB(download,status){}
  8. //download:必选,下载任务对象
  9. //status:必选 ,下载结果状态码,下载成功status=200
  10. //以上保存图片成功但是并未保存到图库
  11. plus.gallery.save( path, successCB, errorCB );此方法将图片保存到图库
  12. //path:必选,保存到相册中的文件地址
  13. //successCB:必选,保存成功后的回调
  14. //errorCB:可选,保存失败后的回调
  15. });
  16. //以上是一个简短的文档,如果需要详细的了解学习,请看H5+api,点击即可www.html5plus.org/doc/h5p.html
  17. 以下为完整代码
  18. mui.plusReady(function(){
  19. plus.downloader.createDownload(url, {}, function(download,status){
  20. if(status=200){
  21. plus.gallery.save( download.filename, function(){
  22. plus.nativeUI.toast("保存成功");
  23. }, function(){
  24. plus.nativeUI.toast("保存失败");
  25. });
  26. }else{
  27. plus.nativeUI.toast("下载失败");
  28. }
  29. });
  30. });

一般这两个方法结合使用,我的理解是创建一个下载任务,将网络地址图片下载到本地,然后利用plus.gallery.sava()方法将保存到手机系统文件夹里面的图片复制粘贴到手机图库,方便查看。

一个来自刚进入前端小白的工作总结,不喜勿喷,如有不对的地方还请指出!


来自   https://blog.csdn.net/Yxc_Programmer/article/details/99763144?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param



js实现点击保存图片

js实现点击保存图片
html:

<img style="-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;" src="{$shareloan}" width="90%" id="testImg">

 <span id="saveImg" οnclick="save()" style="margin-bottom:.6rem;margin-top:.6rem;">保存图片</span>

js:

function save() {

    var img = document.getElementById("testImg");

    var alink = document.createElement("a");

    alink.href = img.src;

    alink.click();

}

效果图:

更多技术问题,可前往:http://sucai.gxyourui.cn/Home/Article/blog.html



来自  https://blog.csdn.net/qq_36926807/article/details/81287350?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param


H5+实现保存图片到本地相册

  1. //保存到本地
  2. $('#savePic').click(function(){
  3. //imgUrl 图片网络路径
  4. var timestamp = (new Date()).valueOf();
  5. var downLoader = plus.downloader.createDownload(imgUrl, {
  6. method: 'GET',
  7. filename: '_downloads/image/' + timestamp + '.png'
  8. }, function(download, status) {
  9. if(status==200){
  10. var fileName = download.filename;
  11. /**
  12. * 保存至本地相册
  13. */
  14. plus.gallery.save(fileName, function() {
  15. mui.toast("保存成功");
  16. },function(){
  17. mui.toast("保存失败,请重试");
  18. });
  19. }else{
  20. mui.toast("下载失败,请重试");
  21. }
  22. });
  23. downLoader.start();
  24. })

 

来自  https://blog.csdn.net/weixin_42340514/article/details/106542786?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param



h5页面使用js实现保存当前图片到手机相册

  1. 来源:https://bbs.csdn.net/wap/topics/392154316?from=groupmessage
  2. var triggerEvent = "touchstart"; //指定下载方式
  3. function saveAs(Url){
  4.     var blob=new Blob([''], {type:'application/octet-stream'});
  5.     var url = URL.createObjectURL(blob);
  6.     var a = document.createElement('a');
  7.     a.href = Url;
  8.     a.download = Url.replace(/(.*\/)*([^.]+.*)/ig,"$2").split("?")[0];
  9.     var e = document.createEvent('MouseEvents');
  10.     e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  11.     a.dispatchEvent(e);
  12.     URL.revokeObjectURL(url);
  13. }
  14. var imgs = document.getElementsByTagName("img");
  15. for(var i = 0,o;o = imgs[i];i++){
  16. o.addEventListener(triggerEvent,function(){
  17. var url = this.getAttribute("src");
  18. saveAs(url);
  19. },false);
  20. }
  1. <!-- js截屏plugin -->
  2. <script type="text/javascript" src="/h5/screencapture/html2canvas.min.js"></script>
  3. <script type="text/javascript" src="/h5/screencapture/canvas2image.js"></script>
  4. <script type="text/javascript">
  5. function convert2canvas() {

    var cntElem = $('#content')[0];

    var shareContent = cntElem;//需要截图的包裹的(原生的)DOM 对象
    var width = shareContent.offsetWidth; //获取dom 宽度
    var height = shareContent.offsetHeight; //获取dom 高度
    var canvas = document.createElement("canvas"); //创建一个canvas节点
    var scale = 2; //定义任意放大倍数 支持小数
    canvas.width = width * scale; //定义canvas 宽度 * 缩放
    canvas.height = height * scale; //定义canvas高度 *缩放
    canvas.getContext("2d").scale(scale, scale); //获取context,设置scale 
    var opts = {
        scale: scale, // 添加的scale 参数
        canvas: canvas, //自定义 canvas
        // logging: true, //日志开关,便于查看html2canvas的内部执行流程
        width: width, //dom 原始宽度
        height: height,
        useCORS: true // 【重要】开启跨域配置
    };

    html2canvas(shareContent, opts).then(function (canvas) {

        var context = canvas.getContext('2d');
        // 【重要】关闭抗锯齿
        context.mozImageSmoothingEnabled = false;
        context.webkitImageSmoothingEnabled = false;
        context.msImageSmoothingEnabled = false;
        context.imageSmoothingEnabled = false; 
        
        // 【重要】默认转化的格式为png,也可设置为其他格式
        var img = Canvas2Image.convertToPNG(canvas, canvas.width, canvas.height);

        //document.body.appendChild(img);
        $("#content").css("display", "none");
        $(".img-container").append(img);
        $(img).css({
            "width": canvas.width / 2 + "px",
            "height": canvas.height  + "px",/// 2
        }).addClass('f-full');

    });

convert2canvas();
/* $(function(){
    document.querySelector("button").addEventListener("click", function() {
        var cntElem = $('#content')[0];
        var shareContent = cntElem;//需要截图的包裹的(原生的)DOM 对象
        var width = shareContent.offsetWidth; //获取dom 宽度
        var height = shareContent.offsetHeight; //获取dom 高度
        var canvas = document.createElement("canvas"); //创建一个canvas节点
        var scale = 1.98; //定义任意放大倍数 支持小数
        canvas.width = width * scale; //定义canvas 宽度 * 缩放
        canvas.height = height * scale; //定义canvas高度 *缩放
        canvas.getContext("2d").scale(scale, scale); //获取context,设置scale 
        var opts = {
            scale: scale, // 添加的scale 参数
            canvas: canvas, //自定义 canvas
            // logging: true, //日志开关,便于查看html2canvas的内部执行流程
            width: width, //dom 原始宽度
            height: height,
            useCORS: true // 【重要】开启跨域配置
        };
        html2canvas(shareContent, opts).then(function (canvas) {
            var src = canvas.toDataURL();
            var link = document.createElement('a');
            //设置下载的文件名
            link.download = '报告';
            link.style.display = 'none';
            //设置下载路径
            link.href = src;
            //触发点击
            document.body.appendChild(link);
            link.click();
            //移除节点
            document.body.removeChild(link);
        });
    }, false);

}); */
</script>


来自  https://blog.csdn.net/rentian1/article/details/84988590

普通分类: