autobots-lib
Version:
汽车人基础库
112 lines (88 loc) • 2.2 kB
JavaScript
;
import React,{Component} from 'react';
import ReactNative from 'react-native';
import Native from '../native';
import Toast from './toast';
import PropTypes from 'prop-types';
const {
StyleSheet,
requireNativeComponent,
NativeModules,
DeviceEventEmitter,
Platform,
View,
Text,
} = ReactNative;
let openNative = function(type,maxPickupNum,callback)
{
let url = 'autobots://testrn/ImagePicker';
if(type=="muti")
{
url = url+"?muti=true";
}else {
url = url+"?muti=false";
}
url = url+"&maxPickupNum="+maxPickupNum;
Native.callNative(url,function(result,data){
if(callback)
{
callback(result,data);
}
});
}
class ImagesPicker extends Component {
MutiPick(maxPickupNum,callback){
var m = maxPickupNum?maxPickupNum:0;
openNative('muti',m,callback);
}
SinglePick(maxPickupNum,callback){
var m = maxPickupNum?maxPickupNum:0;
openNative('',m,callback);
}
componentWillMount() {
var that = this;
function cb_android(e:Event)
{
if(that.props.onPicked)
{
that.props.onPicked(JSON.parse(e.result));
}
}
function cb_ios(p)
{
if(that.props.onPicked)
{
that.props.onPicked(p);
}
}
if(Platform.OS==='android')
{
this.multListener = DeviceEventEmitter.addListener('react_event_multImagePicker', cb_android);
this.sinListener = DeviceEventEmitter.addListener('react_event_singleImagePicker',cb_android);
}else {
this.multListener = DeviceEventEmitter.addListener("react_event_multImagePicker",cb_ios);
this.sinListener = DeviceEventEmitter.addListener("react_event_singleImagePicker",cb_ios);
}
}
componentWillUnmount() {
if(this.multListener!=null)
{
this.multListener.remove();
this.multListener = null;
}
if(this.sinListener!=null)
{
this.sinListener.remove();
this.sinListener = null;
}
}
render() {
return(<View/>);
}
}
ImagesPicker.propTypes={
display: PropTypes.bool,
maxPickupNum:PropTypes.number,
onPicked: PropTypes.func,
}
module.exports = ImagesPicker;