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)
}
}
}
}
Deeplink examples and format
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
Testing Deep Links
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