iOS上的React Native相机显示空白屏幕

Posted

技术标签:

【中文标题】iOS上的React Native相机显示空白屏幕【英文标题】:React Native camera on iOS is showing blank screen 【发布时间】:2019-06-09 19:33:58 【问题描述】:

我正在开发一个用于学习目的的 React Native 应用程序。我正在使用这个包,https://github.com/react-native-community/react-native-camera。但是当我打开相机页面/屏幕时,它只是显示空白屏幕,顶部有一个微调器,如下所示。

这是我的代码。

import React,  PureComponent  from "react";
import 
  StyleSheet,
  Text,
  TouchableOpacity,
  View
 from "react-native";
import  RNCamera  from "react-native-camera";

class EventDetails extends PureComponent 
  constructor(props) 
    super(props);
  

  render() 
    return (
      <View style=styles.container>
        <RNCamera
          ref=ref => 
            this.camera = ref;
          
          style=styles.preview
          type=RNCamera.Constants.Type.back
          flashMode=RNCamera.Constants.FlashMode.on
          androidCameraPermissionOptions=
            title: "Permission to use camera",
            message: "We need your permission to use your camera",
            buttonPositive: "Ok",
            buttonNegative: "Cancel"
          
          androidRecordAudioPermissionOptions=
            title: "Permission to use audio recording",
            message: "We need your permission to use your audio",
            buttonPositive: "Ok",
            buttonNegative: "Cancel"
          
          onGoogleVisionBarcodesDetected=( barcodes ) => 
            console.log(barcodes);
          
        />
        <View
          style= flex: 0, flexDirection: "row", justifyContent: "center" 
        >
          <TouchableOpacity
            onPress=this.takePicture.bind(this)
            style=styles.capture
          >
            <Text style= fontSize: 14 > SNAP </Text>
          </TouchableOpacity>
        </View>
      </View>
    );
  

  takePicture = async () => 
    if (this.camera) 
      const options =  quality: 0.5, base64: true ;
      const data = await this.camera.takePictureAsync(options);
      console.log(data.uri);
    
  ;


const styles = StyleSheet.create(
  container: 
    flex: 1,
    flexDirection: "column",
    backgroundColor: "black"
  ,
  preview: 
    flex: 1,
    justifyContent: "flex-end",
    alignItems: "center"
  ,
  capture: 
    flex: 0,
    backgroundColor: "#fff",
    borderRadius: 5,
    padding: 15,
    paddingHorizontal: 20,
    alignSelf: "center",
    margin: 20
  
);

export default EventDetails;

我的代码有什么问题?

这是我的 ios plist 文件的权限。

【问题讨论】:

你在真机上测试过吗? 【参考方案1】:

您已正确完成此操作,但您必须知道相机在模拟器上无法正常工作,但它可以在外部设备上正常工作

【讨论】:

我有相同的代码 sn-p 它出现在我的模拟器上,但屏幕空白,这是预期的。但是,当我在 iPhone 8 上打开它时,它只是崩溃而没有输出。【参考方案2】:

重要提示: 在 ios 文件夹中,手动链接库后执行命令“pod install”。这解决了我的问题。

【讨论】:

以上是关于iOS上的React Native相机显示空白屏幕的主要内容,如果未能解决你的问题,请参考以下文章

使用 react-native-view-pdf 显示空白视图

相机不显示,状态转换问题,反应原生

如何使用带有 react-native-camera 的默认 iOS 相机控件

求助,react native webview 点击链接进入页面显示空白,IOS

使用 react-native 的 android 上的空白白屏(仅发布)

相机屏幕仅显示空白黑色图像