A set of components and utils useful to extract opengraph data directly from your react-native app
npm install react-native-opengraph-kit
A set of components and utils useful to extract opengraph data directly from your react-native app, with almost no dependency.
For react-native v0.44+
:warning: 2.0.0 is a breaking change, the Parser is now returning an Array of results for all the URLs in the text analysed.
If you are using only the OpenGraphAwareInput, you don't have to change anything.
Be sure to have in your Info.plist
``xml`
...
`js`
import { OpenGraphAwareInput, OpenGraphDisplay, OpenGraphParser } from 'react-native-opengraph-kit';
`js`
textInputStyle={styles.textInput}
onChange={this.doWhatIWantWithTheContent}
/>
Property Name | Type | Description
--- | --- | ---
containerStyle | ViewPropTypes.style | A style to pass to customize the style of the container
onChange | React.PropTypes.func | The function to call on change in the TextInput
textInputStyle | TextInput.propTypes.style | A style to pass to customize the style of the textInput
onIconPress | React.PropTypes.func | A function to call when the Icon is pressed (see OpenGraphDisplay). By default, the function clear the opengraphdata field returned (and therefore the resulting OpenGraphDisplay).OpenGraphDisplay
iconSource | Image.propTypes.source | The Image Source to use as Icon (see )OpenGraphDisplay
iconStyle | Image.propTypes.style | The style of the Icon (see )false
showIcon | React.PropTypes.bool | Should we show the Icon or not? (default is )1
resultLimit | React.PropTypes.number | Max number of parsed OpenGraph links to display (default is )
Fully customizable widget for the extracted data
`js`
/>
Property Name | Type | Description
--- | --- | ---
data | React.PropTypes.shape({
url: React.PropTypes.string,
image: React.PropTypes.string,
title: React.PropTypes.string,
description: React.PropTypes.string,
}).isRequired | The data gotten out of the OpenGraphAwareInput or the OpenGraphParserurlOnlyTouchContainerStyle
containerStyle | ViewPropTypes.style | A style to pass to customize the style of the container
imageStyle | Image.propTypes.style | A style to pass to customize the style of the image
textContainerStyle | ViewPropTypes.style | A style to pass to customize the style of the textContainer
touchContainerStyle | ViewPropTypes.style | A style to pass to customize the style of the View that is touchable when the content is "rich" (as opposed to )x
titleStyle | Text.propTypes.style | A style to pass to customize the style of the title
descriptionStyle | Text.propTypes.style | A style to pass to customize the style of the description
urlStyle | Text.propTypes.style | A style to pass to customize the style of the url
urlOnlyTouchContainerStyle | ViewPropTypes.style | A style to pass to customize the style of the View that is touchable when the content is "poor" (Just the url, no info has been successfully fetched)
onIconPress | React.PropTypes.func | When this function is provided, puts an Icon on the right of the OpenGraphDisplay (by default an )
iconSource | Image.propTypes.source | The Image Source to use as Icon
iconStyle | Image.propTypes.style | The style of the Icon
Where the magic happens
`js
handleTextChange = (event) => {
OpenGraphParser.extractMeta(event.nativeEvent.text)
.then((data) => {
this.setState({ data });
})
.catch((error) => {
console.log(error);
});
}
render() {
return (
/>
);
}
`
Example of data object:
`js``
[
{
description: "We're a young and inspired team that leverages technical knowledge to turn ideas into creative and efficient digital solutions.",
image: "https://osedea.com/images/thumbnail-osedea-1.png",
title: "OSEDEA | Digital Efficiency & Creativity",
type: "website",
url: "http://osedea.com",
}
]
See simple React-native example project in example for a working example