Share #
Methods #
static share(content, options) #
Open a dialog to share text content.
In iOS, Returns a Promise which will be invoked an object containing action, activityType.
If the user dismissed the dialog, the Promise will still be resolved with action being Share.dismissedAction
and all the other keys being undefined.
In Android, Returns a Promise which always be resolved with action being Share.sharedAction.
Content #
message - a message to sharetitle - title of the message
iOS #
At least one of URL and message is required.
Options #
iOS #
excludedActivityTypestintColor
Android #
static sharedAction(0) #
The content was successfully shared.
static dismissedAction(0) #
The dialog has been dismissed.
@platform ios
You can edit the content above on GitHub and send us a pull request!
'use strict';
var React = require('react');
var ReactNative = require('react-native');
var {
StyleSheet,
View,
Text,
TouchableHighlight,
Share,
} = ReactNative;
exports.framework = 'React';
exports.title = 'Share';
exports.description = 'Share data with other Apps.';
exports.examples = [{
title: 'Share Text Content',
render() {
return <ShareMessageExample />;
}
}];
class ShareMessageExample extends React.Component {
_shareMessage: Function;
_shareText: Function;
_showResult: Function;
state: any;
constructor(props) {
super(props);
this._shareMessage = this._shareMessage.bind(this);
this._shareText = this._shareText.bind(this);
this._showResult = this._showResult.bind(this);
this.state = {
result: ''
};
}
render() {
return (
<View>
<TouchableHighlight style={styles.wrapper}
onPress={this._shareMessage}>
<View style={styles.button}>
<Text>Click to share message</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={this._shareText}>
<View style={styles.button}>
<Text>Click to share message, URL and title</Text>
</View>
</TouchableHighlight>
<Text>{this.state.result}</Text>
</View>
);
}
_shareMessage() {
Share.share({
message: 'React Native | A framework for building native apps using React'
})
.then(this._showResult)
.catch((error) => this.setState({result: 'error: ' + error.message}));
}
_shareText() {
Share.share({
message: 'A framework for building native apps using React',
url: 'http://facebook.github.io/react-native/',
title: 'React Native'
}, {
dialogTitle: 'Share React Native website',
excludedActivityTypes: [
'com.apple.UIKit.activity.PostToTwitter'
],
tintColor: 'green'
})
.then(this._showResult)
.catch((error) => this.setState({result: 'error: ' + error.message}));
}
_showResult(result) {
if (result.action === Share.sharedAction) {
if (result.activityType) {
this.setState({result: 'shared with an activityType: ' + result.activityType});
} else {
this.setState({result: 'shared'});
}
} else if (result.action === Share.dismissedAction) {
this.setState({result: 'dismissed'});
}
}
}
var styles = StyleSheet.create({
wrapper: {
borderRadius: 5,
marginBottom: 5,
},
button: {
backgroundColor: '#eeeeee',
padding: 10,
},
});