我有一个简单的聊天应用程序,可以在ASP.Net MVC Web应用程序中使用UCWA api实现纯文本。我必须接下来实现格式化文本。
参考UCWA: integrating advanced chat options
,我发现,在使用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的第二个建议,我无法找到它。
对此有何建议?
答案 0 :(得分:1)
以下是我没有收到通过UCWA API发送的消息的两个原因:
答案 1 :(得分:0)
当谈到UCWA中的消息传递格式时,应该知道默认情况下,默认情况下支持消息传递模式的所有端点都支持纯消息。有趣的是,这个限制不会阻止发送HTML格式的消息,如您在示例中所见。
有两种方法可以启用HTML格式的消息,如下所示:
在成功执行1或2之前,将无法接收HTML格式的消息。