跳到主要内容

流式消息

提示

从 5.16.1 版本开始,IMKit 内置流式消息,可持续接收服务端消息。

局限性

流式消息功能目前存在以下限制:

  • 消息的内容长度最多为 10000 个字符。
  • 仅支持单聊、群聊会话流式消息接收功能。

内容展示

流式消息支持Markdown、Text、HTML 类型,具体字段值参照流式消息。HTML 类型在 5.20.0 版本开始支持。

HTML 类型需要关注以下内容,Markdown、Text 类型 SDK 不需要关注。

内容安全

IMKit SDK 使用原生 WKWebView 组件加载 html 类型的流式消息,但不会对流式消息的内容进行处理,开发者需要保障内容安全。

开发者可以在 HTML 中嵌入 CSP 标签,来提高内容的安全性。

提示

CSP 作为 HTML 的一部分,需要在应用服务器处理好发送给融云服务器。可通过 AI 大模型格式化输出和系统提示词(system prompt) 来增加特定内容。

示例代码

html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; img-src 'self';">
<!-- 其他内容 -->
</head>
<body>
<!-- 页面内容 -->
</body>
</html>

暗黑模式

IMKit SDK 通过 CSS 通用规则 prefers-color-scheme 来适配 WKWebView 主题,但在移动端存在系统版本限制,且依赖应用主题设置。

  • iOS 13及以上:iOS IMKit 支持暗黑模式,如 Html 内容包含 prefers-color-scheme,IMKit 与 WKWebView 会自动跟随浅色深色主题。
  • iOS 13以下:不支持。
提示

prefers-color-scheme 作为 HTML 的一部分,需要开发者 AppServer 处理好发送给 RongCloud Server。可通过 AI 大模型格式化输出和系统提示词(system prompt) 来增加特定内容。

示例代码

css
@media (prefers-color-scheme: dark) {
.day.dark-scheme {
background: #333;
color: white;
}
.night.dark-scheme {
background: black;
color: #ddd;
}
}

@media (prefers-color-scheme: light) {
.day.light-scheme {
background: white;
color: #555;
}
.night.light-scheme {
background: #eee;
color: black;
}
}