Ninja Pumpkin Mutants

    forward-deeplink

    0.1.0 • Public • Published

    forward-deeplink Build Status styled with prettier

    Easily create express endpoint to handle mobile deeplinks in your web server

    Takes away the pain of forwarding users to the right app store / mobile app depending on their platform.

    Use case

    Suppose you have a custom url scheme app:// handled by your mobile apps. You want to create a universal "smart" link that will know where to send the user:

    • If the user has the app installed, open the app with the deeplink.
    • If the user doesn't have the app installed, send to the app store to download the app (google play / itunes).
    • If the user doesn't have a supported phone, send to a fallback url.

    Usage

    Example:

    var express = require('express');
    var deeplink = require('forward-deeplink');
    
    var app = express();
    
    // fix deeplink conf with constance values
    app.get(
      '/deeplink',
      deeplink({
        fallback: 'https://cupsapp.com',
        android_package_name: 'com.linh.demo',
        ios_store_link: 'https://itunes.apple.com/us/app/myapp/id556462755',
      })
    );
    
    // attach deeplink configurations inner request query-string
    app.get('/forward-deeplink', deeplink());

    This example creates an endpoint GET /deeplink in your web server.

    Assuming your server address is https://acme.org, you can use the link https://acme.org/deeplink?url=app://account so when users will open it the app will open with app://account deeplink or the users will be redirected to download the app in case they don't have it.

    Available options

    forward-deeplink currently only supports Android and ios.

    Options 1: To pass on to forward-deeplink are:

    • url: mandatory. The deeplink url you want the user to be directed to e.g. app://account.
    • fallback: mandatory. A fallback url in case the user is opening the link via an unsupported platform like desktop / windows phone etc. In such case, the fallback url will be opened in the user's browser like a normal link.
    • android_package_name: optional. In case you want to support Android deep links, pass your app's package name.
    • ios_store_link: optional. In case you want to support ios deep links, pass your app's itunes url. You can get it here.
    • title: optional. Title for the intermediate html page. Defaults to an empty string.

    Options 2: To pass on to query params (express request):

    When a request comes in, the following query params are checked:

    • url: mandatory. If available, will prefer this deeplink url over the one from the options.
    • fallback: mandatory. If available, will prefer this fallback address over the one from the options.
    • android_package_name: optional. In case you want to support Android deep links, pass your app's package name.
    • ios_store_link: optional. In case you want to support ios deep links, pass your app's itunes url. You can get it here.
    • title: optional. Title for the intermediate html page. Defaults to an empty string.

    Behaviour

    forward-deeplink works by first sending the user to an html page with a user-agent sniffing script. After figuring out the user's device, it redirects them to the predefined deeplink. In practice, after clicking the link, the browser will be opened for a very short moment and then the redirect will happen.

    TODO

    • Better user-agent discovery.
    • Enable non-express use.

    Install

    npm i forward-deeplink

    DownloadsWeekly Downloads

    6

    Version

    0.1.0

    License

    MIT

    Unpacked Size

    16.9 kB

    Total Files

    16

    Last publish

    Collaborators

    • ninjavungve