Navigation
Details about the Navigation user journey
When the Assistant detects that the user is trying to navigate to various parts of the app, it invokes the callback associated with the Navigation user journey. The callback looks like this:
Android Native
React Native
Web
NavigationUserJourney.AppState onNavigation(NavigationInfo navigationInfo, NavigationUserJourney userJourney);
onNavigation: async (navigationInfo, navigationUserJourney)
onNavigation: async (navigationInfo, navigationUserJourney)
When this callback is invoked, the app is expected to:
- 1.Use the
NavigationInfo
parameter to examine the target of the user's navigation - 2.Open the corresponding page/
Activity
using the target field - 3.Finally, return the
AppState
andCondition
that the app transitioned into.
For example, for a given
onNavigation
callback invocation, if the user asked for viewing the cart and if the app can navigate to that page successfully, it sets the success condition and returns the NAVIGATION app state.Android Native
React Native
Web
public NavigationUserJourney.AppState onNavigation(NavigationInfo navigationInfo, NavigationUserJourney userJourney) {
switch (navigationInfo.getTarget()) {
case "cart":
// Goto cart
// ...
userJourney.setNavigationSuccess();
return NavigationUserJourney.AppState.NAVIGATION;
// ...
}
}
onNavigation: async (navigationInfo, navigationUserJourney) => {
switch (navigationInfo.getTarget()) {
case "cart":
// Goto cart
// ...
userJourney.setNavigationSuccess();
return NavigationUserJourney.AppState.NAVIGATION;
// ...
}
},
onNavigation: async (navigationInfo, navigationUserJourney) => {
switch (navigationInfo.target) {
case "cart":
// Goto cart
// ...
navigationUserJourney.setNavigationSuccess();
return NavigationUserJourney.AppStates.NAVIGATION;
// ...
}
},
The following are some examples of commands that could trigger this journey
- "go to my bookings"
- "take me home"
The parameter
NavigationInfo
contains the breakdown of the original navigation request. It has the following structure:Android Native
React Native
Web
Class NavigationInfo {
String getTarget(); // Target to which app has been asked to navigate
}
// Possible target values
"back", "home", "bookings", "orders"
NavigationInfo : { target: <target> }
// Possible target values
"back", "home", "pharmacy", "grocery", "basket", "order"
The following
AppState
s are supported.- NAVIGATION_COMPLETE : To be returned when the app handles the navigation request
- UNSUPPORTED : To be returned when the app is not ready to handle navigation yet. The Assistant will speak out an appropriate prompt to the user.
The Slang Retail Assistant provides a special
AppState
'WAITING' (WaitingAppState)
that is common across all UserJourney
types for completing asynchronous operations within the callback. Refer to the Asynchronous Action Handling section for details of how to deal with asynchronous operations.The following
Condition
s are supported for each of the AppState
s supported by the AssistantApp State | App State Condition | Description |
NAVIGATION_COMPLETE |
|
|
Based on the App State and the Condition that was set, the Assistant will speak out an appropriate message to the user. You can examine the default set of prompts configured for the Assistant through the Console and also customize it to your needs. Refer to the Customizing the Assistant section for details.
Last modified 1yr ago