環(huán)信小程序SDK簡(jiǎn)介
環(huán)信小程序 SDK 為小程序開(kāi)發(fā)提供一套完整的技術(shù)解決方案没讲,在微信小程序的開(kāi)發(fā)環(huán)境下,集成 IM 相關(guān)的功能更加便捷礁苗、高效爬凑。掃描下方小程序二維碼或者微信二維碼可以快速體驗(yàn)環(huán)信小程序在線版本。
功能說(shuō)明
1.環(huán)信微信小程序 WebIM 在微信生態(tài)系統(tǒng)進(jìn)行優(yōu)化试伙,功能與微信對(duì)接更為流暢:
2.支持賬戶注冊(cè)登錄
3.支持 IM 基本功能收發(fā)文本嘁信、圖片、語(yǔ)音疏叨、視頻潘靖、音頻、文件考廉、透?jìng)髅乇U(kuò)展消息等
4.支持 群組聊天室功能
5.支持個(gè)人設(shè)置
開(kāi)發(fā)者集成
集成前準(zhǔn)備
注冊(cè)并創(chuàng)建應(yīng)用
搭建小程序開(kāi)發(fā)環(huán)境
小程序自己有一個(gè)專(zhuān)門(mén)的微信開(kāi)發(fā)者工具,最新版本下載地址昌粤。
這一步比較簡(jiǎn)單既绕,按照提示一步步安裝好就行,然后用微信掃描二維碼登陸涮坐。 至此小程序的開(kāi)發(fā)環(huán)境差不多完成凄贩。
配置服務(wù)器域名
登錄微信公眾平臺(tái),進(jìn)入“開(kāi)發(fā) > 開(kāi)發(fā)設(shè)置”頁(yè)面袱讹,配置以下服務(wù)器地址:
- request合法域名疲扎, uploadFile合法域名
1、https://a1.easemob.com
2捷雕、https://a2.easemob.com
3椒丧、https://a3.easemob.com
4、https://a4.easemob.com
5救巷、https://a5.easemob.com - socket合法域名
wss://im-api.easemob.com
將SDK添加到自己的小程序
下載SDK
可以通過(guò)以下兩種方式獲取SDK:
- 通過(guò)官網(wǎng)下載SDK (暫時(shí)沒(méi)有)
- 從我們的github倉(cāng)庫(kù) demo中獲取sdk中的文件
引入SDK
- 開(kāi)始一個(gè)全新的項(xiàng)目
- 將sdk目錄下的文件全部倒入到自己的項(xiàng)目中壶熏。
- 直接使用import/require方式獲取引用, 如果使用mpvue保持引文件方式的統(tǒng)一。
- 基于demo二次開(kāi)發(fā)
拉取代碼浦译,導(dǎo)入開(kāi)發(fā)者工具即可運(yùn)行起來(lái)棒假。
調(diào)用示例:
//使用示例
import SDK from "../sdk/connection";
實(shí)例調(diào)用方式
采用單例模式,所有業(yè)務(wù)使用唯一實(shí)例
//實(shí)例化SDK對(duì)象
const WebIM = window.WebIM = SDK;
WebIM.conn = new WebIM.connection({
isMultiLoginSessions: false, //是否可以登錄多個(gè)網(wǎng)頁(yè)精盅,并在所有網(wǎng)頁(yè)上接收消息
https: false, //是否使用HTTPS
url: 'wss://im-api.easemob.com/ws/', //XMPP server
apiUrl: 'https://a1.easemob.com',
isAutoLogin: false, //自動(dòng)登錄
heartBeatWait: 4500, //心跳間隔
autoReconnectNumMax: 2, //自動(dòng)重連次數(shù)
autoReconnectInterval: 2, //每個(gè)重新連接之間的間隔秒, 自動(dòng)重連次數(shù)大于1時(shí)有效帽哑。
});
SDK基礎(chǔ)功能
事件監(jiān)聽(tīng)
WebIM.conn.listen({
onOpened: function ( message ) { //連接成功回調(diào)
// 如果isAutoLogin設(shè)置為false,那么必須手動(dòng)設(shè)置上線叹俏,否則無(wú)法收消息
// 手動(dòng)上線指的是調(diào)用conn.setPresence(); 如果conn初始化時(shí)已將isAutoLogin設(shè)置為true
// 則無(wú)需調(diào)用conn.setPresence();
},
onClosed: function ( message ) {}, //連接關(guān)閉回調(diào)
onTextMessage: function ( message ) {}, //收到文本消息
onEmojiMessage: function ( message ) {}, //收到表情消息
onPictureMessage: function ( message ) {}, //收到圖片消息
onRoster: function ( message ) {}, //處理好友申請(qǐng)
onInviteMessage: function ( message ) {}, //處理群組邀請(qǐng)
onOnline: function () {}, //本機(jī)網(wǎng)絡(luò)連接成功
onOffline: function () {}, //本機(jī)網(wǎng)絡(luò)掉線
onError: function ( message ) {}, //失敗回調(diào)
onReceivedMessage: function(message){}, //收到消息送達(dá)服務(wù)器回執(zhí)
onDeliveredMessage: function(message){}, //收到消息送達(dá)客戶端回執(zhí)
onReadMessage: function(message){}, //收到消息已讀回執(zhí)
// ......
})
注冊(cè)
根據(jù)用戶名/密碼/昵稱(chēng)注冊(cè)環(huán)信IM
let options = {
username: 'username',
password: 'password',
nickname: 'nickname',
appKey: WebIM.config.appkey,
success: function () { },
error: function () { },
apiUrl: WebIM.config.apiURL
};
WebIM.utils.registerUser(options);
登錄
用戶名/密碼登錄
let options = {
apiUrl: WebIM.config.apiURL,
user: 'username',
pwd: 'password',
appKey: WebIM.config.appkey
};
WebIM.conn.open(options);
使用Token登錄
let options = {
apiUrl: WebIM.config.apiURL,
user: 'username',
accessToken: 'token',
appKey: WebIM.config.appkey
};
WebIM.conn.open(options);
發(fā)送消息
let id = WebIM.conn.getUniqueId();
let msg = new WebIM.message(msgType, id);
msg.set({
msg: 'userMessage',
from: 'username',
to: 'username',
roomType: false,
chatType: chatType,
success(id, serverMsgId){}
});
WebIM.conn.send(msg.body);
退出
WebIM.conn.close();
小程序 SDK API 文檔
微信小程序的IM的API使用方法妻枕,與Web Javascript接入方式基本相同,可參照Web SDK 接口列表