UNPKG

autobots-lib

Version:

汽车人基础库

112 lines (88 loc) 2.2 kB
'use strict'; 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;