Deep Linking

In order to enable deep linking to all supported screens, you will need to register a URL Scheme in your appication’s AndroidManifest.xml file. This value should be provided by VenueNext integration support.

If you already have an App Scheme that you support or are planning to support, please let VenueNext know in case you have any issues.

To add a URL Scheme to your AndroidManifest.xml:

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <data android:scheme="<APP_SCHEME_HERE>" />
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>

NOTE: Since all deep link intents will be handled in your application’s MainActivity, please ensure to have the android:launchMode="singleTask" added to your activity properties to ensure proper functionality as seen above.

To add VenueNext Deep Link handling to your project’s current deep link implementation, ensure the following steps are performed in onNewIntent and after initial launch of your application:

  override fun onNewIntent(newIntent: Intent?) {
      super.onNewIntent(newIntent)

      handleIntent(newIntent)
  }

  private fun handleIntent(newIntent: Intent?) {
      if (newIntent?.action == Intent.ACTION_VIEW) {
          newIntent.data?.let {
              if (VenueNextWeb.canHandleDeepLink(it)) {
                  VenueNextWeb.handleDeepLink(view, it, this)
              }
          }
      }
  }

Query Parameter Legend

pt = Product Type
mid = Menu UUID
eid = Event UUID
iid = Item UUID
vid = Variant UUID

// The following are filters for the revenue center lists. The below are only to be used in conjunction with Product Type (pt).

f_nwt = No Wait Times (Boolean)
f_st = Service Type (pickup, delivery, none) - Case Sensitive
f_l = Locations (comma delimited, URI encoded) - Exact matches only
f_c = Categories (comma delimited, URI encoded) - Exact matches only

Once integrated, an easy shortcut to test a deep link via adb CLI is:

adb shell am start -a android.intent.action.VIEW -d "<DEEP_LINK_HERE>"

Keep in mind when using adb CLI, ampersands (&) will need to be escaped:

adb shell am start -a android.intent.action.VIEW -d "<APP_SCHEME>://vn/rvc/menu?pt=food\&mid=<MENU_UUID>"

Deep linking to Product Type Menus

<APP_SCHEME>://vn/rvc?pt=<PRODUCT_TYPE>

// e.g
vndemoapp://vn/rvc?pt=all
vndemoapp://vn/rvc?pt=food
vndemoapp://vn/rvc?pt=merchandise
vndemoapp://vn/rvc?pt=experience

Deep linking to Product type Menus with filters

Filters do not work for the Experience product type

<APP_SCHEME>://vn/rvc?pt=<food/merchandise>&f_nwt=<true/false>&=f_st=<pickup/delivery/none>&f_l=<comma,delimited,uri,encoded,list>&f_c=<comma,delimited,uri,encoded,list>

// e.g.
vndemoapp://vn/rvc?pt=food&f_nwt=true&f_st=pickup&f_l=Upper%20Deck&f_c=Finger%20Foods
vndemoapp://vn/rvc?pt=merchandise&f_nwt=false&f_st=delivery&f_l=Upper%20Deck,Lower%Deck,Upstairs,Downstairs&f_c=Finger%20Foods,Alcohol

Deep linking to a specific Food & Beverage or Merchandise Menu

<APP_SCHEME>://vn/rvc/menu?pt=<PRODUCT_TYPE>&mid=<MENU_UUID>

// e.g.
vndemoapp://vn/rvc/menu?pt=food&mid=55559869-3e16-4acd-87e5-a35f7e49a8de

Deep linking to an Experience Menu

 <APP_SCHEME>://vn/rvc/menu?pt=experience&mid=<MENU_UUID>

 // e.g.

 // Experience Menu without an Event pre-populated
 vndemoapp://vn/rvc/menu?pt=experience&mid=399f78b7-5576-48e2-abd8-99d390c042ee

 // Experience Menu with an Event pre-populated
vndemoapp://vn/rvc/menu?pt=experience&mid=399f78b7-5576-48e2-abd8-99d390c042ee&eid=eb224e64-bcc5-4cc8-9109-e9893da6c228

Deep linking to a specific Food & Beverage or Merchandise Menu Item

<APP_SCHEME>://vn/rvc/menu?pt=<PRODUCT_TYPE>&mid=<MENU_UUID>&=<ITEM_UUID>

// e.g.
vndemoapp://vn/rvc/menu?pt=food&mid=55559869-3e16-4acd-87e5-a35f7e49a8de&iid=796f81a3-2409-4b5d-8c5b-78687624b400

Deep linking to a Detailed Experience Menu view

<APP_SCHEME>://vn/rvc/menu?pt=experience&mid=<MENU_UUID>&iid=<ITEM_UUID>

// e.g.

// Detailed Experience Menu view without event pre-populated
vndemoapp://vn/rvc/menu?pt=experience&&mid=399f78b7-5576-48e2-abd8-99d390c042ee&iid=e048b2a6-2aaf-46ee-8df1-19f821189972

// Detailed Experience Menu view with event pre-populated
vndemoapp://vn/rvc/menu?pt=experience&sid=399f78b7-5576-48e2-abd8-99d390c042ee&mid=399f78b7-5576-48e2-abd8-99d390c042ee&eid=c7b19487-f24b-433e-aaf9-29f150893b22&iid=e048b2a6-2aaf-46ee-8df1-19f821189972

Deep linking to user’s Order History

// Order History
<APP_SCHEME>://vn/order/activity

// e.g.
vndemoapp://vn/order/activity

// Order Receipt
<APP_SCHEME>://vn/order/receipt?uuid=<RECEIPT_UUID>

// e.g.
vndemoapp://vn/order/receipt?uuid=5cdd721d-5950-45b7-abdc-b4b5e74675d2

Deep linking to user’s Wallet

// Wallet
<APP_SCHEME>://vn/wallet
// e.g.
vndemoapp://vn/wallet

// Virtual Currency Activiity
<APP_SCHEME>://vn/wallet/virtual-currency/activity
// e.g.
vndemoapp://vn/wallet/virtual-currency/activity

// Scan and Pay
<APP_SCHEME>://vn/wallet/scan-and-pay
// e.g.
vndemoapp://vn/wallet/scan-and-pay

// Send Virtual Currency
<APP_SCHEME>://vn/wallet/virtual-currency/transfer
// e.g.
vndemoapp://vn/wallet/virtual-currency/transfer

// Send Virtual Currency
<APP_SCHEME>://vn/wallet/virtual-currency/transfer
// e.g.
vndemoapp://vn/wallet/virtual-currency/transfer

// Benefits and Rewards
<APP_SCHEME>://vn/wallet/virtual-currency/awards-rules
// e.g.
vndemoapp://vn/wallet/virtual-currency/awards-rules

// My Info
<APP_SCHEME>://vn/wallet/profile/settings
// e.g.
vndemoapp://vn/wallet/profile/settings

// My Badge
<APP_SCHEME>://vn/wallet?showBadge=1
// e.g.
vndemoapp://vn/wallet?showBadge=1

// My Payment Methods
<APP_SCHEME>://vn/wallet?showPayments=1
// e.g.
vndemoapp://vn/wallet?showPayments=1

// Scanner
<APP_SCHEME>://vn/wallet/scanner
// e.g.
vndemoapp://vn/wallet/scanner

// QR Code
<APP_SCHEME>://vn/wallet/qrcode
// e.g.
vndemoapp://vn/wallet/qrcode

// Load Tickets
<APP_SCHEME>://vn/wallet?showExchangeServiceDialog=1
// e.g.
vndemoapp://vn/wallet?showExchangeServiceDialog=1

Updated: