React-Native使用CameraRoll将图片保存到相册
使用CameraRoll将图片保存到相册在ios和android上的实现有一些差别。
首先CameraRoll有一个CameraRoll.saveToCameraRoll(tag, [type]);方法,可以将一张图片保存到相册中,
参数tag在ios和android上也有些不一样。
ios
对于ios来说,tag可以是任意图片的uri比如网络地址url或者base64,也可以是本地视频文件的URI.
所以对于ios来说,保存图片到相册,只需调用CameraRoll.saveToCameraRoll方法即可。
Android
在Android上,tag参数表示图片的本地uri,也就是说saveToCameraRoll方法只接受本地图片uri作为参数,如file:///data/com.example.apps/test.png。
所以对于网络图片来说,需要先将图片保存下来,再使用saveToCameraRoll方法推到相册中。
- 怎么保存呢?如果图片是base64的形式,则可以使用rn-fetch-blob库的RNFetchBlob,具体如下:
const dest = RNFetchBlob.fs.dirs.DCIMDir + new Date().getTime() + ".png";
RNFetchBlob.fs.writeFile(dest, CommonHelper.realImageBase64String(uri), 'base64').then(res => {CameraRoll.saveToCameraRoll(`file://${dest}`).then(_ => {// save success}).catch(error => {// save fail
}).catch(error => {// do something
});static realImageBase64String(s: string): string {const pattern = /^data:image\/\S{1,};base64,/;const matches = s.match(pattern);if (matches && matches.length > 0) {const arrays = s.split(matches[0]);return arrays[1];}return '';
}
- 如果图片是远程url,则按如下方法来保存
RNFetchBlob.config({ fileCache: true, appendExt: 'png' }).fetch('GET', uri, {}).then(res => {const localUri = res.path().startsWith('file://') ? res.path() : `file://${res.path()}`;CameraRoll.saveToCameraRoll(localUri).then(_ => {// 保存成功}).catch(error => {// 保存失败});
}).catch(error => {// 没有访问外部存储权限
});
React-Native使用CameraRoll将图片保存到相册相关推荐
- React Native - 使用CameraRoll将图片保存到本地相册
PS: 以下内容经过本人亲自尝试 证明在IOS设备上简单有效 // IOS需要授权认证才允许保存图片,非常重要,记得配置: 由于苹果安全策略更新,还需要在 Info.plist 配置请求照片相的关描述 ...
- React Native的照相机和图片
React Native的照相机和图片 react-native-image-picker 如果要实现多个图像选择,裁剪,压缩等功能需要 react-native-image-crop-picker ...
- android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...
本文将带你了解Android应用开发之Android ScrollView截图和图片保存到相册的方式,希望本文对大家学Android有所帮助. 1.1首先来看你一种截取屏幕,这种代码有缺陷,只能截取一 ...
- 长按UIWebView上的图片保存到相册
不知道各位对于这个需求要如何解决? 可能有些人会想到js与原生交互,js监听图片点击事件,然后将图片的url传递给原生App端,然后原生App将图片保存到相册,这样子麻烦吗?超麻烦.(1).js监听图 ...
- 教你实现微信公众号效果:长按图片保存到相册
不知道各位对于这个需求要如何解决? 可能有些人会想到js与原生交互,js监听图片点击事件,然后将图片的url传递给原生App端,然后原生App将图片保存到相册,这样子麻烦吗?超麻烦.(1).js监听图 ...
- OpenGLES(八)GPUImage滤镜链与将滤镜修改后的图片保存到相册
1.滤镜链 在一个复合滤镜中,多种滤镜效果处理时,通常都是图片 -> 设置顶点/纹理坐标 -> 滤镜效果处理 -> 帧缓冲区 -> 新的纹理 -> 滤镜效果处理 -> ...
- 小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案
小程序下载图片保存到相册功能,首次操作会提示:保存图片或视频到你的相册,有'拒绝'和'允许'两个选项,如果选择了拒绝就会保存失败:saveImageToPhotosAlbum:fail auth de ...
- 微信小程序点击图片保存到相册
小程序实现点击图片保存到相册 温馨提示:小程序图片在本地保存成功后放到线上失效,应该是没有设置合法的文件下载域名 // 下载事件函数bindImage: function (e) {var url = ...
- 26.Android 下载图片保存到相册
26.Android 下载图片保存到相册 Android 下载图片保存到相册 前言 实现思路 自定义Dialog 自定义Handler 自定义AsyncTask AndroidManifest配置权限 ...
最新文章
- 开发中解决Access-Control-Allow-Origin跨域问题的Chrome神器插件,安装及使用
- java任何封闭实例都不是java_《java并发编程实战》读书笔记3--对象的组合
- linux php-fpm优化 php-fpm.conf 重要参数详解
- Andriod开发中正确引入jar包的方式
- 深入掌握Linux操作系统,其实也没你想象那么难
- 通过计算机网络进行的商务活动包括,电子商务练习题及答案
- mysql注入式攻击_mybatis的sql中使用$会出现sql注入示例
- vim 的ctags,taglist和supertab详解
- python继承中的参数_python 继承中的super
- Kotlin习惯用语和编码风格[转自Kotlin中文文档]
- 组织人事领域信息化探索:开启编制、干部、人事一体化管理新模式
- 计算机变成英语,原来是中文的电脑电脑系统变成英文了
- 为什么大数据工程师比Java程序员工资高50%?
- 计算机一级考试《MS Office》
- 《App Store 审查指南》更新,这几条影响不小
- [插件使用] SwitchHosts自动更新Github Hosts文件
- USB3.0传输数据、解析处理和帧率计算
- linux wenj 立即生效_linux方面知识
- Allegro教学:关于dangling connection的解释
- [原]as3 flash web 应用 (2)批量上传之php页面接收flash传递的数据
热门文章
- Android 使用easeui 3.0 集成环信即时通讯 我踩过的坑
- 计蒜客 难题题库 201 奖学金的分配
- 移动端获得微信openid_构建用于移动设备的OpenID Connect流
- ARP Spoofing
- ubuntu+终端不能启动mysql数据库_在ubuntu环境下mysql数据库启动异常排除
- 新工作,新环境,新征程
- CS269I:Incentives in Computer Science 学习笔记:Lecture 7 Selfish Routing(自利寻径网络超额配置)
- 一款免费清爽的markdown软件vnote的完全配置手册-无忧配置Graphviz、plantuml、mathjax
- 食药监移动执法指挥系统
- 基于影像地图指挥信息系统开发教程 第十一课