LeanCloud Realtime Message JavaScript SDK
TypeError: Function(...) is not a function
错误的问题。CDN 地址与预编译文件下载: https://unpkg.com/browse/[email protected]/dist/
pushOfflineMessages
模式创建 Realtime ,需要开发者主动拉取未读消息。IMClient#getConversation
返回值类型定义的错误。CDN 地址与预编译文件下载: https://unpkg.com/browse/[email protected]/dist/
messageType
和 messageField
类型定义的错误。Realtime#createIMClient
参数类型定义的错误。add
/ remove
更改为 invite
/ kick
,如果你使用了签名控制对话邀请、移除成员权限,需要更新对 action 的判断逻辑。CDN 地址与预编译文件下载: https://cdn.jsdelivr.net/npm/[email protected]/dist/
conversation.get('attr.type');
messageType
和 messageField
类型定义的错误。CDN 地址与预编译文件下载: https://cdn.jsdelivr.net/npm/[email protected]/dist/
ConversationQuery.or
与 ConversationQuery.and
支持对话组合查询。Cannot read property 'document' of undefined
异常的问题。CDN 地址与预编译文件下载: https://cdn.jsdelivr.net/npm/[email protected]/dist/
为了保证兼容性,SDK 一直以来分发的都是 ECMAScript 5 版本的代码,并打包了所有需要的 Polyfills(比如 Promise)。
从这个版本起,SDK 将同时提供以最新版本 ECMAScript 为编译目标的版本。相比于以 ECMAScript 5 版本,最新 ECMAScript 版本的 SDK 拥有更小的体积与更好的运行时优化,适用于只需要兼容最新版本浏览器的使用场景。如果应用使用了 @babel/preset-env
或类似方案,也可以在转译时 include 最新 ECMAScript 版本的 SDK,由应用来决定要兼容的目标运行环境。
需要注意最新版本 ECMAScript 每年都会变,而该版本的目标即是提供与最新标准对齐的代码,因此由于引入了新版本 ECMASCript 特性导致不再支持某些非最新版本的运行环境将不被视为 Breaking change。当前 ECMAScript 的版本为 2020。
require('leancloud-realtime/es-latest')
来引入该版本的 SDK;dist/es-latest
目录下找到预编译的文件。CDN 地址与预编译文件下载: https://cdn.jsdelivr.net/npm/[email protected]/dist/
这个版本中 SDK 新增了一个运行环境无关的版本,开发者可以在此基础上应用目标运行环境的 Adapters 来适配相应的运行平台。
增加 /im
入口,这是一个运行环境无关的版本,需要配置 Adapters 后才能运行。可以通过以下方式引入该版本:
const { Realtime, setAdapters } = require('leancloud-realtime/im');
更新了内置支持平台的预编译版本文件名以更好的反应不同版本之间的差异:
原文件名 | 新文件名 |
---|---|
- | im.js(新) |
realtime.js | im-node.js |
realtime-browser.js realtime-browser.min.js |
im-browser.js im-browser.min.js |
realtime-weapp.js realtime-weapp.min.js |
im-weapp.js im-weapp.min.js |
如果你使用了 CDN 或其他直接引用预编译版本的方式加载的 SDK,需要按照上面的对应关系更新文件名。