Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

rn_cam.native.js 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import React, { PureComponent } from 'react';
  2. import { AppRegistry, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
  3. import { RNCamera } from 'react-native-camera';
  4. class ExampleApp extends PureComponent {
  5. render() {
  6. var rn_cam_styles = tglob_au.run_dev_cbs("rn_cam_styles",{that:this}) || {}
  7. return (
  8. <View style={rn_cam_styles.container || {}}>
  9. <RNCamera
  10. ref={ref => {
  11. this.camera = ref;
  12. }}
  13. style={rn_cam_styles.preview}
  14. type={RNCamera.Constants.Type.back}
  15. flashMode={RNCamera.Constants.FlashMode.on}
  16. androidCameraPermissionOptions={{
  17. title: 'Permission to use camera',
  18. message: 'We need your permission to use your camera',
  19. buttonPositive: 'Ok',
  20. buttonNegative: 'Cancel',
  21. }}
  22. androidRecordAudioPermissionOptions={{
  23. title: 'Permission to use audio recording',
  24. message: 'We need your permission to use your audio',
  25. buttonPositive: 'Ok',
  26. buttonNegative: 'Cancel',
  27. }}
  28. onGoogleVisionBarcodesDetected={({ barcodes }) => {
  29. console.log(barcodes);
  30. }}
  31. />
  32. <View style={{ flex: 0, flexDirection: 'row', justifyContent: 'center' }}>
  33. <TouchableOpacity onPress={this.takePicture.bind(this)} style={rn_cam_styles.capture}>
  34. <Text style={{ fontSize: 14 }}> SNAP </Text>
  35. </TouchableOpacity>
  36. </View>
  37. </View>
  38. );
  39. }
  40. takePicture = async () => {
  41. if (this.camera) {
  42. const options = { quality: 0.5, base64: true };
  43. const data = await this.camera.takePictureAsync(options);
  44. console.log(data.uri);
  45. }
  46. };
  47. }
  48. const styles = StyleSheet.create({
  49. container: {
  50. flex: 1,
  51. flexDirection: 'column',
  52. backgroundColor: 'black',
  53. },
  54. preview: {
  55. flex: 1,
  56. justifyContent: 'flex-end',
  57. alignItems: 'center',
  58. },
  59. capture: {
  60. flex: 0,
  61. backgroundColor: '#fff',
  62. borderRadius: 5,
  63. padding: 15,
  64. paddingHorizontal: 20,
  65. alignSelf: 'center',
  66. margin: 20,
  67. },
  68. });
  69. export {ExampleApp}