react-native-applinks

AppLinks support for React Native.

  • 所有者: facebookarchive/react-native-applinks
  • 平台:
  • 許可證: Other
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

React Native App Links

React Native App Links is a JavaScript library for React Native that implements App Links protocol, helping you link to content in other apps and handle incoming deep-links.

App Links protocol documentation is available at applinks.org: app links navigation protocol

Examples

var React = require('react-native');
var { LinkingIOS } = React;
var AppLinkURL = require('react-native-applinks').AppLinkURL;

var MyApp = React.createClass({
  componentDidMount: function() {
    LinkingIOS.addEventListener('url', this._handleOpenURL);
    var url = LinkingIOS.popInitialURL();
    if (url) { this._handleOpenURL({url: url}); }
  },
  componentWillUnmount: function() {
    LinkingIOS.removeEventListener('url', this._handleOpenURL);
  },
  _handleOpenURL: function(event) {
    var alUrl = new AppLinkURL(event.url)
    // work with alUrl.appLinkData. For example render back link to referer app.
    var backLink = null;
    var refererAL = alUrl.appLink.referer_app_link;

    // if referer app link was provided we can construct back button with text
    if (refererAL) {
      backLink = {
        url: refererAL.url,
        text: 'Back' + refererAL.app_name ? ' to ' + refererAL.app_name : ''
      };
    }
  }
}

For fetching app link data from web url you need to use AppLinkNavigation and AppLinkResolver classes.
React Native App Links library provides two implementations of AppLinkResolver:

  • IndexAPIAppLinkResolver - gets app link data by querying Facebook's Index API. Read more at Finding App Link Data with the Index API.
  • NativeAppLinkResolver - downloads and parses html content for given web url. Scans for 'al:' meta tags and creates app links object.
var React = require('react-native');
var { LinkingIOS } = React;
var AppLinks = require('react-native-applinks');
var { AppLinkNavigation, IndexAPIAppLinkResolver, NativeAppLinkResolver } = AppLinks;

var MyApp = React.createClass({
  _openOutgoingWebUrl(weburl) {
    var fbResolver = new IndexAPIAppLinkResolver('your_app_facebook_token');
    // var nativeResolver = new NativeAppLinkResolver();
    var alNavigation = new AppLinkNavigation(
      fbResolver, // nativeResolver,
      { target_url: 'http://myapp.com', url: 'myapp://home', app_name: 'My App' },
      'iphone'
    );
    // fetch best possible deeplink from web url's app link data and open using LinkingIOS
    alNavigation.fetchUrlFromWebUrl(weburl, LinkingIOS.openURL, (err) => { /* handle error */ });
  }

Requirements

React Native App Links requires or works with

  • React Native

npm install react-native-applinks

License

React Native App Links is BSD-licensed. We also provide an additional patent grant.

主要指標

概覽
名稱與所有者facebookarchive/react-native-applinks
主編程語言JavaScript
編程語言JavaScript (語言數: 1)
平台
許可證Other
所有者活动
創建於2015-04-10 17:18:19
推送於2017-12-01 18:47:07
最后一次提交2017-12-01 10:47:06
發布數0
用户参与
星數310
關注者數24
派生數28
提交數8
已啟用問題?
問題數4
打開的問題數2
拉請求數2
打開的拉請求數1
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?