Android: React-native-share возвращает «ошибка: сбой системы» при попытке Share.open - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю над приложением 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'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...