我使用React Native Share Method(https://facebook.github.io/react-native/docs/share.html)在 Android 上分享内容。
根据文档,我们可以通过以下方式使用它:
Share.share({
message: 'React Native | A framework for building native apps using React'
})
.then((result) => {
console.log(result.action) // returns sharedAction
})
.catch((error) => {
console.log(error)
})
因此,当我们调用Share
方法时,我们会在then
中获得结果,并且会出现弹出窗口,其中包含可与我们共享消息内容的应用列表。
问题:
弹出窗口还包含一个cancel
按钮,因此当用户点击它时,窗口会关闭,但在文档中没有可用/提及的方法来捕获它。
有没有办法捕获取消事件,因为我想在用户点击它时执行一些操作。
谢谢你。 :)
答案 0 :(得分:0)
这可能有帮助
import React, {Component} from 'react';
import {Share, Button} from 'react-native';
class ShareExample extends Component {
onShare = async () => {
try {
const result = await Share.share({
message:
'React Native | A framework for building native apps using React',
});
if (result.action === Share.sharedAction) {
if (result.activityType) {
// shared with activity type of result.activityType
} else {
// shared
}
} else if (result.action === Share.dismissedAction) {
// dismissed
}
} catch (error) {
alert(error.message);
}
};
render() {
return <Button onPress={this.onShare} title="Share" />;
}
}
答案 1 :(得分:0)
共享dismissedAction中有选项,但是很遗憾,这仅是IOS。您可以将react-native-share 与道具“ failOnCancel”一起使用为真,它将同时在android和ios上运行
示例代码
import React, { Component } from "react";
import { Button } from "react-native";
import Share from "react-native-share";
export default class ShareExample extends Component {
onShare = async () => {
const shareOptions = {
title: "Share file",
social: Share.Social.EMAIL,
failOnCancel: true
};
try {
const ShareResponse = await Share.open(shareOptions);
//setResult(JSON.stringify(ShareResponse, null, 2));
} catch (error) {
console.log("Error =>", error);
}
};
render() {
return <Button onPress={this.onShare} title="Share" />;
}
}
应用预览