ionic2 保存图片到手机相册

本文介绍了如何在Ionic2应用中使用原生插件`cordova-plugin-android-permissions`和`cordova-plugin-photo-library`来实现保存图片到手机相册的功能。首先需要安装这两个插件,并在`app.module.ts`中引入。在保存图片前,需要检查是否有写外部存储的权限,如果没有,则请求用户授权。接着,调用`saveImage`方法保存图片到指定文件夹。

ionic2 保存图片到手机相册需要2个原生插件

一、原生插件安装

    1、Android Permissions

        通过以下命令下载

        ionic plugin add cordova-plugin-android-permissions

        npm install --save @ionic-native/android-permissions

    2、Photo Library

        通过以下命令下载

        ionic plugin add cordova-plugin-photo-library --variable PHOTO_LIBRARY_USAGE_DESCRIPTION="To choose photos"

        npm install --save @ionic-native/photo-library

    将以上原生插件引入 app.module.ts 内

    import{ PhotoLibrary }from'@ionic-native/photo-library';

    import{ AndroidPermissions }from'@ionic-native/android-permissions';

二、在保存图片之前先要确认有没有权限去保存到相册,没有权限的话需要 发送请求去让用户开启权限,然后在保存图片

在组件内引入插件并依赖注入

        import{ PhotoLibrary }from'@ionic-native/photo-library';

        import{ AndroidPermissions }from'@ionic-native/android-permissions';

    constructor(private androidPermissions:AndroidPermissions,private photoLibrary:PhotoLibrary){}

/**

* 保存图片

* @param url 图片路径

*/

saveImage(url:string){

    this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.WRITE_EXTERNAL_STORAGE).then((result)=>{

            if(!result.hasPermission) {

                    return this.ap.requestPermission(this.ap.PERMISSION.WRITE_EXTERNAL_STORAGE);

            }else{

                    return Promise.resolve({hasPermission:true});

            }

}).then((hasPermission)=>{

    if(hasPermission){

        this.photoLibrary.saveImage(srcUrl,'images').then((res)=>{

                console.log(res);

        }).catch(e=>{

                console.log(e);

        });

}else{

    this.photoLibrary.saveImage(srcUrl,'images').then((res)=>{

            console.log(res);

     }).catch(e=>{

            console.log(e);

    });

}

}).catch(err=>{

    this.ap.requestPermission(this.ap.PERMISSION.WRITE_EXTERNAL_STORAGE).then(suc=>{

            this.photoLibrary.saveImage(srcUrl,'images').then((res)=>{

                console.log(res);

            }).catch(e=>{

                console.log(e);

        });

});

})  

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值