如何知道用户何时关闭 React Native 中的共享选项

Ron*_*onE 3 react-native

我正在使用 RN 的Share API功能构建一个带有 Expo 的应用程序。我已成功实现以下共享图像:

Share.share(
{
  message: 'This is a message',
  url: FileSystem.documentDirectory + imageUrlDate
},
{
  dialogTitle: 'Share Today',
  excludedActivityTypes: [
    'com.apple.mobilenotes.SharingExtension',
    'com.apple.reminders.RemindersEditorExtension'
  ]
}
Run Code Online (Sandbox Code Playgroud)

);

我想知道的是如何使用sharedAction()deniedAction ()选项。

基本上,我想知道用户是取消共享还是跟进。

谢谢!

ben*_*nel 6

正如您可以从docs 中读取的那样,Share.share()返回一个Promise并且返回操作会显示用户是否共享或关闭了对话框。Dismissed action仅适用于 iOS,因此如果您的实现需要,您可能需要编写特定平台的代码

在 iOS 中,返回一个 Promise,它将被调用一个包含操作、activityType 的对象。如果用户关闭对话框,Promise 仍然会被解析,操作是 Share.dismissedAction 并且所有其他键都未定义。

在 Android 中,返回一个始终通过 Share.sharedAction 操作解决的 Promise。

所以你可以做这样的事情,

Share.share({ message: 'This is a message', url: FileSystem.documentDirectory + imageUrlDate },
{
  dialogTitle: 'Share Today',
  excludedActivityTypes: [
    'com.apple.mobilenotes.SharingExtension',
    'com.apple.reminders.RemindersEditorExtension'
  ]
}).then(({action, activityType}) => {
  if(action === Share.dismissedAction) console.log('Share dismissed');
  else console.log('Share successful');
});
Run Code Online (Sandbox Code Playgroud)