参考官方文档即时通信 IM Web&小程序&uni-app-无 UI 集成方案-文档中心-腾讯云
1.小程序或者 uni-app 项目
1.1.首先npm i iniy -y创建npm包管理仓库
1.2
// 从v2.11.2起,SDK 支持了 WebSocket,推荐接入;v2.10.2及以下版本,使用 HTTP
npm install tim-wx-sdk --save
// 发送图片、文件等消息需要腾讯云 即时通信 IM 上传插件
npm install tim-upload-plugin --save
// 拦截或替换敏感词需要本地审核插件
npm install tim-profanity-filter-plugin --save
1.3在项目main.js里引入模块,并初始化。
import TIM from 'tim-wx-sdk';
import TIMUploadPlugin from 'tim-upload-plugin';
import TIMProfanityFilterPlugin from 'tim-profanity-filter-plugin';
let options = {
SDKAppID: 1400793757 // 接入时需要将0替换为您的即时通信 IM 应用的 SDKAppID
};
// 创建 SDK 实例,`TIM.create()`方法对于同一个 `SDKAppID` 只会返回同一份实例
let tim = TIM.create(options); // SDK 实例通常用 tim 表示
// 设置 SDK 日志输出级别,详细分级请参见 setLogLevel https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#setLogLevel 接口的说明</a>
tim.setLogLevel(0); // 普通级别,日志量较多,接入时建议使用
// tim.setLogLevel(1); // release 级别,SDK 输出关键信息,生产环境时建议使用
// 注册腾讯云即时通信 IM 上传插件
tim.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin });
// 注册腾讯云即时通信 IM 本地审核插件
tim.registerPlugin({ 'tim-profanity-filter-plugin': TIMProfanityFilterPlugin });
// #ifdef APP-PLUS
// v2.22.0 起支持 uni-app 打包 native app 时使用离线推送插件
// 请注意!应合规要求,在用户同意隐私协议的前提下,登录成功后 SDK 会通过推送插件获取推送 token,并将推送 token 传递至后台(若获取 token 失败则会导致离线推送无法正常使用)
const TUIOfflinePush = uni.requireNativePlugin("TencentCloud-TUIOfflinePush");
tim.registerPlugin({
'tim-offline-push-plugin': TUIOfflinePush,
'offlinePushConfig': {
// huawei
'huaweiBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID
// xiaomi
'xiaomiBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID
'xiaomiAppID': '', // 小米开放平台分配的应用 APPID
'xiaomiAppKey': '', // 小米开放平台分配的应用 APPKEY
// meizu
'meizuBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID
'meizuAppID': '', // 魅族开放平台分配的应用 APPID
'meizuAppKey': '', // 魅族开放平台分配的应用 APPKEY
// vivo
'vivoBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID
// oppo
'oppoBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID
'oppoAppKey': '', // oppo 开放平台分配的应用 APPID
'oppoAppSecret': '', // oppo 开放平台分配的应用 Secret
// ios
'iosBusinessID': '', // 在腾讯云控制台上传第三方推送证书后分配的证书 ID
}
});
// #endif
//挂载到全局
Vue.prototype.Tim = TIM
Vue.prototype.tim = tim
特别注意// #ifdef APP-PLUS这块必须包裹,不然小程序报错uni.requireNativePlugin is not a function!