我正在使用 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 ()选项。
基本上,我想知道用户是取消共享还是跟进。
谢谢!
正如您可以从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)
| 归档时间: |
|
| 查看次数: |
2323 次 |
| 最近记录: |