React Native Share方法多个Windows

时间:2018-03-01 09:21:59

标签: react-native

我正在使用反应原生共享,共享文本内容。问题是多个窗口在多次单击共享按钮上相互打开。即使我在共享点击时禁用了按钮,但它也没用。

标准方法是,如果共享窗口已经打开,再次单击共享按钮,窗口将关闭。怎么办呢?

<Button 
 transparent
 disabled={this.state.isShareDisabled}
  onPress={() => this.onShare()}>

onShare() {
    if(!this.state.isShareDisabled)
    {
    this.setState(
        {
            isShareDisabled:true
        }
    )
    Share.share({
      message: “Message test”,
      url: ”www.google.com”,
      title: “Title test”
    }, {
      // Android only:
      dialogTitle: 'Share',
      // iOS only:
      excludedActivityTypes: [
        'com.apple.UIKit.activity.PostToTwitter'
      ]
    }) .then((result) => {
        this.setState(
            {
                isShareDisabled: false,
            }
        )
    })
}
  }

2 个答案:

答案 0 :(得分:1)

我通过执行以下操作解决了这个问题,只需要检查dismissedAction。

onShare() {
    if(!this.state.isShareDisabled)
    {
    this.setState(
        {
            isShareDisabled:true
        }
    )

    Share.share({ message:  'test',
         url: 'test url',
         title: 'test title'
         },
{
   // Android only:
   dialogTitle: 'Share',
   // iOS only:
   excludedActivityTypes: [
     'com.apple.UIKit.activity.PostToTwitter'
   ]
}).then(({action, activityType}) => {
  if(action === Share.dismissedAction) {
    this.setState(
        {
            isShareDisabled: false,
        }
    )
    }
  else {
    this.setState(
        {
         isShareDisabled: false,
        }
    )
  }
});
}
  }

答案 1 :(得分:1)

使用被驳回的行动。在Android和iOS上分享活动支持。