Navigation
Details about the Navigation user journey
The onNavigation callback
onNavigation callbackWhen 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:
NavigationAppState onNavigation(NavigationInfo navigationInfo, NavigationUserJourney userJourney);onNavigation: async (navigationInfo, navigationUserJourney)onNavigation: async (navigationInfo, navigationUserJourney)NavigationUserJourney.AppState onNavigation(NavigationInfo navigationInfo, NavigationUserJourney userJourney);When this callback is invoked, the app is expected to:
Use the
NavigationInfoparameter to examine the target of the user's navigationOpen the corresponding page/
Activityusing the target fieldFinally, return the
AppStateandConditionthat 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.
public NavigationAppState onNavigation(NavigationInfo navigationInfo, NavigationUserJourney userJourney) {
switch (navigationInfo.getTarget()) {
case "cart":
// Go to cart page
// ...
return NavigationCompleteAppState(SUCCESS);
}
}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;
// ...
}
},public NavigationUserJourney.AppState onNavigation(NavigationInfo navigationInfo, NavigationUserJourney userJourney) {
switch (navigationInfo.getTarget()) {
case "cart":
// Goto cart
// ...
userJourney.setNavigationSuccess();
return NavigationUserJourney.AppState.NAVIGATION;
// ...
}
}Sample Utterances that could trigger Navigation
The following are some examples of commands that could trigger this journey
"go to my cart"
"pharmacy"
"take me home"
NavigationInfo Parameter
NavigationInfo ParameterThe parameterNavigationInfo contains the breakdown of the original navigation request. It has the following structure:
Class NavigationInfo {
String getTarget(); // Target to which app has been asked to navigate
}
// Possible target values
"back", "home", "pharmacy", "grocery", "basket", "order"NavigationInfo : { target: <target> }
// Possible target values
"back", "home", "pharmacy", "grocery", "basket", "order"Supported AppStates
AppStatesThe following AppStates are supported.
NAVIGATION_COMPLETE (
NavigationCompleteAppState): To be returned when the app handles the navigation requestUNSUPPORTED (
UnsupportedAppState): To be returned when the app is not ready to handle navigation yet. The Assistant will speak out an appropriate prompt to the user.
Supported Conditions
ConditionsThe following Conditions are supported for each of the AppStates supported by the Assistant
App State
App State Condition
Description
NAVIGATION_COMPLETE (NavigationCompleteAppState)
SUCCESSTARGET_INVALIDFAILURE
The navigation was successful
The navigation target is not valid
There was a failure while navigating
Assistant Prompts
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 updated
Was this helpful?
