因此,我将按照此处关于如何设置 Twilio Flex WebChat 的教程进行操作。虽然它确实有效,但我需要稍后更改友好名称。
我的应用程序的工作方式是在用户签名之前显示网络聊天,因为脚本位于 react 应用程序的 index.html 文件中。
我需要更改它,以便在他们登录后更新聊天中显示的名称。
这是我到目前为止所拥有的,但它肯定行不通。假设我可以从本地存储中获取名称,并且登录内容有效。
componentDidMount() {
//other stuff
this.initializeTwilio();
}
initializeTwilio() {
const name = localStorage.getItem("firstName") +' '+ localStorage.getItem("lastName");
const appConfig = {
accountSid :"hidden",
flexFlowSid: "hidden",
context: {
friendlyName: name
}
};
Twilio.FlexWebChat.renderWebChat(appConfig);
}
我也试过这样做:
let test = Twilio.FlexWebChat.Manager.create(appConfig);
Twilio.FlexWebChat.ContextProvider.Manager = test;
Twilio.FlexWebChat.renderWebChat(appConfig);
我也尝试过像这样编辑 MessagingCanvas:
initializeTwilio =() => {
const first = localStorage.getItem("firstName");
let name ="";
if(first){
const last = localStorage.getItem("lastName");
name = first +' '+ last;
}
else {
name = "Anonymous";
}
Twilio.FlexWebChat.MessagingCanvas.defaultProps.memberDisplayOptions = {
yourDefaultName: name,
yourFriendlyNameOverride: true
}
console.log(Twilio.FlexWebChat.MessagingCanvas.defaultProps);
}
这将更改控制台中的值,但不会更改聊天窗口中显示的名称。
我想我需要更新 appconfig 并重新渲染聊天窗口,但不知道该怎么做,可能有不同的方法来解决问题。我愿意接受这方面的启发。