我有一个简单的聊天应用程序,可以在 ASP.Net MVC Web 应用程序中使用 UCWA api 实现纯文本。接下来我必须实现一个格式化文本。
参考UCWA:集成高级聊天选项
,我知道,在发送消息到使用之前,ucwa.Transport.clientRequest
我们必须设置contentType
当前text/html
是text/plain
。
所以我有发送消息的功能,如下所示:
function sendMessage(displayName, msg, timestamp) {
var encodedMsg = encodeURIComponent(msg);
ucwa.Transport.clientRequest({
url: messagingLinks.SendMessage + "?SessionContext=" + ucwa.GeneralHelper.generateUUID(),
type: "post",
contentType: "text/html",
data: encodedMsg,
callback: function () {
addMessageToChat(displayName, encodedMsg, timestamp);
}
});
}
的实现handleMessage()
如下图所示:
function handleMessage(data, parts) {
alert("Inside Handle message");
if (!data._embedded.message._links.plainMessage) return false;
var message = decodeMessage(data._embedded.message._links.plainMessage.href);
var decodedMsg = decodeURIComponent(message);
addMessageToChat(data._embedded.message._links.participant.title, decodedMsg, formatTime(new Date(Date.now())));
}
上述实现中的问题是,在接收端,没有输入 handleMessage() 方法,这意味着我没有接收到传入的消息。
任何人都可以指出我哪里出错了,以及我需要与上述更改一起做的任何其他更改,以便我可以发送格式化的文本。一个样本将对此非常有帮助。
任何建议也足够好。提前致谢。
编辑:
正如建议的那样,我修改了我的makeMeAvailable
方法。以下是相同的定义Authentication.js
:
function makeMeAvailable() {
if (!_authenticated) {
cache.read({
id: "main"
}).done(function (cacheData) {
if (cacheData) {
var data = {
SupportedModalities: ["Messaging"],
supportedMessageFormats: ["Plain","Html"]
};
transport.clientRequest({
url: cacheData._embedded.me._links.makeMeAvailable.href,
type: "post",
data: data,
callback: handleState
});
}
});
} else {
handleState({
status: 204
});
}
}
但是,输出仍然相同。关于communication
API 的第二个建议,我找不到它。
对此有什么建议吗?