首页 > 解决方案 > `result.isCancelled` + `result.postId` 在通过 Android 上的 ShareDialog 取消后始终未定义

问题描述

我正在尝试利用“react-native-fbsdk”库中的 ShareDialog 导出。

当用户没有在他们的设备上安装 Facebook 并且他们成功分享他们的照片时,我们的实现(如下所示)运行良好。

但是,当用户开始分享并丢弃 Facebook 窗口时,result.isCancelled只会在 iOS 上捕获。 result.postId在 iOS 和 Android 上均未填充。

是否需要做一些事情才能result.isCancelled在 Android 上填充和/或result.postId在任一平台上填充?

  ShareDialog.canShow(shareContent).then(
    (canShow) => {
      if (canShow) {
        return ShareDialog.show(shareContent);
      } else {
        return false;
      }
    },
  ).then(
    (result) => {
      if (!result) {
        Alert.alert('Error', 'You must have Facebook installed on this device in order to share this post')
      } else if (result.isCancelled) {
        Alert.alert('Cancelled', 'Share cancelled');
      } else {
        Alert.alert('Success!', 'Share successful');
      }
    },
    (error) => {
      Alert.alert(`Share fail with error: ${error}`);
    },
  )

标签: javascriptandroidfacebookreact-nativereact-native-fbsdk

解决方案


推荐阅读