标签:
react-native中CameraRoll模块提供了访问本地相册的功能。
在react版本为0.23.0的项目中,不支持Android,而且在iOS中使用CameraRoll还需要我们手动操作:
iOS:
经过这样的添加我们在项目中再使用CameraRoll里边的函数就不会出错了。
CameraRoll模块中有两个函数:saveImageWithTag()、getPhotos()。
保存一个图片到相册。
@param {string} tag 在安卓上,本参数是一个本地URI,例如"file:///sdcard/img.png"
.
在iOS设备上可能是以下之一:
返回一个Promise,操作成功时返回新的URI。
示例:
CameraRoll.saveImageWithTag(image).then(function (success) { Alert.alert( ‘‘, ‘保存到相册成功‘, [ {text: ‘确定‘, onPress: () => console.log(success)} ] ) }, function (error) { Alert.alert( ‘‘, ‘保存到相册失败‘, [ {text: ‘确定‘, onPress: () => console.log(error)} ] ) } ) }
学习这个功能是在官方demo中学习的,它写成了一个可以使用的js文件CameraRollView.js,我们需要将该文件引入我们的项目中。
文件打开会有错误显示,只是语法不一样,这个不影响效果。
使用方法:
import CameraRollView from ‘../CameraRollView‘; export default class CameraRollView extends Component { constructor(props) { super(props); CameraRoll.getPhotos({ first: 21, assetType: ‘Photos‘ }).then(function (data) { }, function (error) { }) } _renderImage(asset) { var windowSize = require(‘Dimensions‘).get(‘window‘); return ( <TouchableOpacity key={asset}> <Image source={asset.node.image} style={{width: (windowSize.width-30)/3, height: 110, margin:5}}/> </TouchableOpacity> ); } render() { return (<View style={{flex:1}}> <CameraRollView renderImage={this._renderImage}/> </View> ) } }
标签:
原文地址:http://www.cnblogs.com/maoyazhi/p/5411759.html