17 KiB
id, title, original_id
| id | title | original_id |
|---|---|---|
| version-0.19-intentandroid | intentandroid | intentandroid |
IntentAndroid
IntentAndroid gives you a general interface to handle external links.
Basic Usage #
Handling deep links #
If your app was launched from an external url registered to your app you can access and handle it from any component you want with
NOTE: For instructions on how to add support for deep linking, refer Enabling Deep Links for App Content - Add Intent Filters for Your Deep Links.
Opening external links #
To start the corresponding activity for a link (web URL, email, contact etc.), call
If you want to check if any installed app can handle a given URL beforehand you can call
Methods #
static openURL(url: string) #
Starts a corresponding external activity for the given URL.
For example, if the URL is "https://www.facebook.com", the system browser will be opened, or the "choose application" dialog will be shown.
You can use other URLs, like a location (e.g. "geo:37.484847,-122.148386"), a contact, or any other URL that can be opened with {@code Intent.ACTION_VIEW}.
NOTE: This method will fail if the system doesn't know how to open the specified URL. If you're passing in a non-http(s) URL, it's best to check {@code canOpenURL} first.
NOTE: For web URLs, the protocol ("http://", "https://") must be set accordingly!
static canOpenURL(url: string, callback: Function) #
Determine whether or not an installed app can handle a given URL.
You can use other URLs, like a location (e.g. "geo:37.484847,-122.148386"), a contact, or any other URL that can be opened with {@code Intent.ACTION_VIEW}.
NOTE: For web URLs, the protocol ("http://", "https://") must be set accordingly!
@param URL the URL to open
static getInitialURL(callback: Function) #
If the app launch was triggered by an app link with {@code Intent.ACTION_VIEW},
it will give the link url, otherwise it will give null
Refer http://developer.android.com/training/app-indexing/deep-linking.html#handling-intents
Edit on GitHubExamples #
var React = require('react-native'); var { IntentAndroid, StyleSheet, Text, TouchableNativeFeedback, View, } = React; var UIExplorerBlock = require('./UIExplorerBlock');
var OpenURLButton = React.createClass({
propTypes: { url: React.PropTypes.string, },
handleClick: function() { IntentAndroid.canOpenURL(this.props.url, (supported) => { if (supported) { IntentAndroid.openURL(this.props.url); } else { console.log('Don't know how to open URI: ' + this.props.url); } }); },
render: function() { return ( <TouchableNativeFeedback onPress={this.handleClick}> <View style={styles.button}> <Text style={styles.text}>Open {this.props.url}</Text> </View> </TouchableNativeFeedback> ); } });
var IntentAndroidExample = React.createClass({
statics: { title: 'IntentAndroid', description: 'Shows how to use Android Intents to open URLs.', },
render: function() { return ( <UIExplorerBlock title="Open external URLs"> <OpenURLButton url={'https://www.facebook.com'} /> <OpenURLButton url={'http://www.facebook.com'} /> <OpenURLButton url={'http://facebook.com'} /> <OpenURLButton url={'geo:37.484847,-122.148386'} /> </UIExplorerBlock> ); }, });
var styles = StyleSheet.create({ container: { flex: 1, backgroundColor: 'white', padding: 10, paddingTop: 30, }, button: { padding: 10, backgroundColor: '#3B5998', marginBottom: 10, }, text: { color: 'white', }, });
module.exports = IntentAndroidExample;