android - React Native - 共享方法取消事件

标签 android react-native react-router react-redux

我正在使用 React Native 共享方法 (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 中得到结果并出现弹出窗口,其中包含我们可以共享消息内容的应用程序列表。

问题:

弹出窗口还包含一个取消按钮,因此当用户单击它时,窗口会关闭,但是在文档中没有可用/提到的方法来捕获它。

有什么方法可以捕获取消事件,因为我想在用户点击它时执行一些操作。

感谢副词。 :)

最佳答案

股票有期权dismissedAction但不幸的是,这只是 IOS。您可以使用 react-native-share 将 prop "failOnCancel"设置为 true 它可以在 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" />;
  }
}

应用预览

enter image description here

关于android - React Native - 共享方法取消事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095828/

相关文章:

android - 条目名称 'classes.dex' 发生冲突

Android - 无论如何在 doInBackground 中调用 notifyDataSetChanged

javascript - 使用 Hoc react 渲染

reactjs - 如何强制服务器端提供路由

android - 即使手机放在 table 上也会改变位置

java - 带有单选按钮的 Android Action Down

android - 在 this.state.message 中显示接收者消息

javascript - React-native-vision-camera 无法访问后面的普通相机

reactjs - 当哈希更改并更改状态时如何重新渲染组件

react-router - 每条路线变更都要求Fav​​icon