Я пытаюсь открыть камеру в своем приложении. Я использую 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
Программируем под IOS
1733566729
Anonymous
Я пытаюсь открыть камеру в своем приложении. Я использую 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:
+
Подробнее здесь: [url]https://stackoverflow.com/questions/79260407/why-does-my-expo-camera-function-not-open-for-my-app-in-expo-go[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия