教程: 根据当前页面定制问候语操作
本教程说明如何根据用户当前正在查看的页面动态定制由 Web 聊天触发的问候语操作。
有关本教程中描述的示例的完整工作版本,请参阅 Select 问候操作 for watsonx Assistant Web chat。
如果未启用主屏幕,那么打开 Web 聊天时的缺省行为是向助手发送空消息以启动对话。 此空消息将触发 问候客户 操作,这通常会发送欢迎消息。
您可能希望用户看到特定于他们已查看的页面的提示,而不是使用通用问候语启动对话。 例如,如果用户已浏览到有关信用卡的页面,然后打开 Web 交谈,那么您可能希望使用特定于信用卡的消息来启动对话。
虽然此示例显示如何根据当前页面来调整文本,但您可以使用相同的基本方法根据任何客户机条件 (例如,时间或用户的地理位置) 来调整文本。
要根据用户正在查看的当前页面来更改问候操作,请执行以下步骤:
-
确定用户当前正在查看的页面。 根据应用程序的设计,有多种方法来执行此操作,但一个简单的机制是检查 URL 查询参数的值 (在此示例中,
page):const page = new URLSearchParams(window.location.search).get('page'); -
为
pre:send事件创建处理程序,此处理程序在将消息发送到助手之前触发。 此处理程序通过检查is_welcome_request属性来启动,以确定要发送的消息是否为通过触发 问候客户 操作来启动对话的空消息。如果是,那么处理程序将检查当前显示的页面,并将传出的空消息替换为将触发特定于该页面的操作的消息。 (此示例仅显示将消息设置为
Credit Cards,但其他if条件可以为其他页面定制消息。)function preSendHandler(event) { if (event.data.history && event.data.history.is_welcome_request) { if (page === 'cards') { event.data.input.text = 'Credit Cards'; } } } -
在
onLoad事件处理程序中,使用once()实例方法来预订pre:send事件,并将preSendHandler()函数注册为回调。 (我们可以使用once()而不是on(),因为需要仅针对会话中的第一条消息调用此处理程序。)instance.once({ type: 'pre:send', handler: preSendHandler});
要获取完整的工作代码,请参阅 Select 问候操作 for watsonx Assistant Web chat 示例。