Я пытаюсь открыть камеру в своем приложении. Я использую Expo Go, чтобы открыть это приложение на своем устройстве IOS, написанное с использованием React Native. Однако я получаю эту ошибку:
(NOBRIDGE) ERROR Warning: TypeError: _expoCamera.Camera.useCameraPermissions is not a function (it is undefined)
Это CameraScreen.js.
import React, { useState, useEffect } from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import { Camera } from 'expo-camera';
export default function CameraScreen() {
const [permission, requestPermission] = Camera.useCameraPermissions();
const [cameraType, setCameraType] = useState(Camera.Constants.Type.back);
useEffect(() => {
if (!permission) {
requestPermission(); // Request permissions on mount if not granted
}
}, [permission]);
if (!permission) {
// Permissions are still loading
return Loading...;
}
if (!permission.granted) {
// Permission is not granted yet
return (
We need your permission to access the camera.
);
}
return (
setCameraType((prev) =>
prev === Camera.Constants.Type.back
? Camera.Constants.Type.front
: Camera.Constants.Type.back
)
}
/>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
padding: 16,
},
camera: {
flex: 1,
width: '100%',
},
});
У меня есть эти разрешения в package.json.
},
"ios": {
"supportsTablet": true,
"newArchEnabled": true,
"infoPlist": {
"NSCameraUsageDescription": "We need access to your camera to take photos."
}
},
"android": {
"newArchEnabled": true,
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"permissions": ["CAMERA"]
},
"plugins": [
[
"expo-camera",
{
"cameraPermission": "Allow $(PRODUCT_NAME) to access your camera",
"microphonePermission": "Allow $(PRODUCT_NAME) to access your microphone",
"recordAudioAndroid": true
}
]
Насколько я понимаю, файл Babel.config.js также должен быть правильно изменен, поэтому на всякий случай я включил его ниже.
module.exports = function (api) {
api.cache(true);
return {
presets: ["babel-preset-expo"],
plugins: ["module:react-native-dotenv"], // Use "module:react-native-dotenv"
};
};
Если применимо, это соответствующие части кода для моих HomePage.js и App.js:
+
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-expo-go
Почему моя функция Expo-Camera не открывается в моем приложении в Expo Go? ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение