Я работаю над приложением React Native, которое делает снимки с помощью камеры, сохраняет изображения, а затем позволяет пользователю сохранять изображение в своей библиотеке фотографий или делиться этими изображениями через SMS, электронную почту, социальные сети и т. Д.
Помимо прочего, я использую response-native-fs (https://github.com/itinance/react-native-fs) и Reaction-native-share (https://github.com/react-native-community/react-native-share)) для достижения этой цели. На iOS все отлично работает.проблема возникает, когда я пытаюсь поделиться сохраненным изображением на Android. Я сделал несколько копаний, и похоже, что изображение должно быть в Base64, чтобы делиться на Android. Я пытаюсь преобразовать изображение в base64 в реагировать на роднойfs, а затем отправьте его на Resact-native-share, но при попытке поделиться образом base64 я получаю следующую бесполезную ошибку:
error: сбой системы
Вот соответствующийкод:
RNFS.readFile(this.state.sourceURI, 'base64')
.then((res) => {
this.setState({androidURI: res});
})
.then((res) => {
const options = {
title: 'Share',
message: "test",
type: "image/png",
url: 'data:image/png;base64,' + this.state.androidURI,
};
Share.open(options)
.then((res) => { console.log(res); })
.catch((err) => {
Alert.alert(
'Alert',
"Sharing Error: " + JSON.stringify(err),
[
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel',
},
],
{cancelable: false},
);
});
})
.catch((err) => {
Alert.alert(
'Alert',
"Error converting to base64: " + JSON.stringify(err),
[
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel',
},
],
{cancelable: false},
);
});
Ошибка обнаруживается на Share.open («Ошибка общего доступа»). Если кто-нибудь может дать мне некоторое представление о том, что я делаю неправильно, я был бы очень признателен.Вам требуется дополнительная информация от меня, я был бы рад предоставить ее.
Спасибо !!
РЕДАКТИРОВАТЬ: Чтобы уточнить, this.state.sourceURI содержит следующую строку:
'file: /// storage / emulated / 0 / Android / data / com. {имя моего приложения здесь} /files/Test.png'