【发布时间】:2021-06-29 17:47:09
【问题描述】:
我需要在我的应用中添加图像选择器。我为图像选择器逻辑创建了小类:
import {launchImageLibrary, launchCamera} from 'react-native-image-picker';
export default class ImagePickerService {
static openPickerLibrary(
setImageUrl: Dispatch<SetStateAction<string | null | undefined>>,
setModalVisible: Dispatch<SetStateAction<boolean>>,
) {
launchImageLibrary(
{mediaType: 'photo', includeBase64: true},
(response: any) => {
if (response.didCancel) {
console.log('User cancelled image picker');
} else if (response.error) {
console.log('ImagePicker Error: ', response.error);
} else {
setImageUrl(`data:image/jpeg;base64,${response.base64}`);
setModalVisible(false);
}
},
);
}
static openPickerCamera(
setImageUrl: Dispatch<SetStateAction<string | null | undefined>>,
setModalVisible: Dispatch<SetStateAction<boolean>>,
) {
launchCamera({mediaType: 'photo', includeBase64: true}, (response: any) => {
if (response.didCancel) {
console.log('User cancelled image picker');
} else if (response.error) {
console.log('ImagePicker Error: ', response.error);
} else {
setImageUrl(`data:image/jpeg;base64,${response.base64}`);
setModalVisible(false);
}
});
}
}
然后我这样调用这些方法:
<ModalButton
label="Take photo"
onPress={() =>
ImagePickerService.openPickerCamera(setImageUrl, setPickerVisible)
}
/>
<ModalButton
label="Choose photo"
onPress={() =>
ImagePickerService.openPickerLibrary(setImageUrl, setPickerVisible)
}
/>
选择器库效果很好。但是选择器相机没有打开。只有模态窗口关闭,没有别的。控制台也没有任何错误。
我不明白为什么会这样。我在 AndroidManifest 中拥有所有权限。我也试过这个字符串,但没有帮助:
android:requestLegacyExternalStorage="true"
我也尝试过这些功能,但它们也没有帮助:
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
我该如何解决这个问题?
【问题讨论】:
标签: android reactjs typescript react-native react-hooks