/** * The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. * * Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * @flow */ '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 ; } }]; 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 ( Click to share message Click to share message, URL and title {this.state.result} ); } _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, }, });