react-native(리액트 네이티브) API - Share
const React = require('react')
const ReactNative = require('react-native')
const {
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 />
},
},
]
export default class ShareMessageExample extends React.Component {
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.mesaage}`}))
}
_shareText() {
Share.share(
{
message: 'A framework for building native apps using React',
url: 'http://facebook.github.io/react-native/',
title: 'React Native',
},
{
subject: 'A subject to go in the email heading',
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.aciton === 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,
},
})
'프로그래밍(Programming) > 리액트 네이티브(React Native)' 카테고리의 다른 글
react-native(리액트 네이티브) API - TimerMixin (0) | 2019.01.08 |
---|---|
react-native(리액트 네이티브) API - TimePickerAndroid (0) | 2019.01.08 |
react-native(리액트 네이티브) API - PermissionsAndroid (0) | 2019.01.07 |
react-native(리액트 네이티브) API - PanResponder (0) | 2019.01.07 |
react-native(리액트 네이티브) API - OrientationChange (0) | 2019.01.07 |