前言
之前的兩篇文章我們介紹了用uni-app實作了實時音視頻通話這個功能,沒有印象的小伙伴們可以看這兩個鏈接,
Android uni-app 封裝原生插件
Android uni-app實作音視頻通話
更多的訊息資訊可以關注 anyRTC開發者官網
1、效果圖
先給大家看一下效果,然后我們再繼續講解,

GitHub下載地址
uni-app-rtm demo:點擊下載
掃碼下載

2、功能介紹
uni-app跨平臺實時訊息SDK插件,包含點對點訊息、頻道訊息、呼叫邀請等功能,在同一頻道下,用戶可以接收和發送訊息,從下方的狀態欄里面可以到頻道內的狀態變化,包括人員的更新和訊息的更新,
支持平臺
- Android
- ios
應用場景
1、在線教育
在線教育場景中,適用于大班課和小班課,同學可以實時發送訊息與老師進行溝通,
2、娛樂直播
在直播環境中,觀眾可以實時發送彈幕與主播進行互動,
3、對講
在鐵路或者運輸的場景中,同一公司,同一部門之間各個員工之間可以在相同的頻道下進行溝通,大大提高作業效率,減少溝通成本,
4、語音群聊
在語音聊天的環境下同時可以支持訊息溝通,
3、專案集成
快速集成
- 下載示例工程,前往anyRTC官網注冊賬號
- 創建應用,獲取應用的App ID,

- 下載插件示例工程,制作自定義基座,主要步驟如圖,證書問題,請參照申請證書說明,

- 運行自定義基座

4、方法回呼
1、login(登錄rtm)
{“code”: 0}
2、logout(登出rtm)
{“code”: 0}
3、queryPeersOnlineStatus(查詢指定?戶的在線狀態)
{“peerOnlineStatus”:[{“peerId”:“123”,“state”:1}],“code”:0}
4、subscribePeersOnlineStatus(訂閱指定單個或多個?戶的在線狀態)
{“code”: 0}
5、unsubscribePeersOnlineStatus(訂閱指定單個或多個用戶的在線狀態)
{“code”: 0}
6、queryPeersBySubscriptionOption(獲取某特定內容被訂閱的membersOnSuccess用戶串列)
{“peers”:[“123”,“456”],@“code”:0}
peers為訂閱用戶id陣列
7、setLocalUserAttributes(全量設定本地用戶的屬性)
{“code”: 0}
8、addOrUpdateLocalUserAttributes(添加或更新本地用戶的屬性)
{“code”: 0}
9、deleteLocalUserAttributesByKeys(洗掉本地用戶的指定屬性)
{“code”: 0}
10、clearLocalUserAttributes(清空本地用戶的所有屬性)
{“code”: 0}
11、getUserAttributes(獲取指定用戶的全部屬性)
{“userAttributesList”:{“age”:23,“name”:“Jerry”},“userId”:“123”, “code”:0}
12、getUserAttributesByKeys(獲取指定用戶指定屬性名的屬性)
{“userAttributesList”:{“age”:23,“name”:“Jerry”},“userId”:“123”, “code”:0}
13、setChannelAttributes(全量設定某指定頻道的屬性)
{“code”: 0}
14、addOrUpdateChannelAttributes(添加或更新某指定頻道的屬性)
{“code”: 0}
15、deleteChannelAttributesByKeys(洗掉某指定頻道的指定屬性)
{“code”: 0}
16、clearChannelAttributes(清空某指定頻道的屬性)
{“code”: 0}
17、getChannelAttributes(查詢某指定頻道的全部屬性)
{“channelAttributes”:{“age”:23,“name”:“Jerry”}, “code”:0}
18、getChannelAttributesByKeys(查詢某指定頻道指定屬性名的屬性)
{“channelAttributes”:{“age”:23,“name”:“Jerry”}, “code”:0}
listDic 例如:{“age":23,“name”:“Jerry”}
19、getChannelMemberCount(查詢單個或多個頻道的成員人數)
{“memberCounts”:[{“channelId”:“909090”,"count”:2}],“code”:0}
20、join(加入頻道)
{“code”: 0}
21、leave(離開頻道)
{“code”: 0}
22、sendChannelMessage(發送頻道訊息)
{“code”: 0}
23、getMembers(獲取頻道成員串列)
{“members”:[{“channelId”:“909090”,“userId”:“123456”}],“code”:0}
24、sendLocalInvitation、acceptRemoteInvitation、refuseRemoteInvitation、cancelLocalInvitation
5、事件回呼
1、RtmClientListener
1、onConnectionStateChanged( SDK 與 anyRTC rtm系統的連接狀態發生改變回呼 )
{"rtmEvent":"onConnectionStateChanged","state":0,"reason":0}
2、onPeerMessageReceived( 收到點對點訊息回呼 )
{"rtmEvent":"onPeerMessageReceived","serverReceivedTs":0,"text":"message","OfflineMessage":0,"messageType":0,"peerId":"123"}
3、onPeersOnlineStatusChanged( 被訂閱用戶在線狀態改變回呼 )
{"rtmEvent":"onPeersOnlineStatusChanged","peersStatus":[{"peerId":"123","state":0}]}
2、RtmChannelListener
1.onAttributesUpdated (頻道屬性更新回呼)
{"rtmEvent":"onAttributesUpdated", "attributeList":[{"key":"name","value":"Jerry","lastUpdateUid":"123","lastUpdateTs":0}]}
2.onMemberCountUpdated (頻道成員人數更新回呼)
{"rtmEvent":"onMemberCountUpdated","memberCount": 0}
3.onMemberJoined (遠端用戶加入頻道回呼)
{"rtmEvent":"onMemberJoined","userId": "123","channelId": "909090"}
4.onMemberLeft (頻道成員離開頻道回呼)
{"rtmEvent":"onMemberLeft","userId": "123","channelId": "909090"}
5.onChannelMessageReceived (收到頻道訊息回呼)
{"rtmEvent":"onChannelMessageReceived","type":0,"text":"message","serverReceivedTs":0,"isOfflineMessage":true, "userId": "123","channelId": "909090"}
3、RtmCallEventListener
1.onLocalInvitationAccepted (回傳給主叫:被叫已接受呼叫邀請)
{"rtmEvent":"onLocalInvitationAccepted","calleeId": "123","content": "","channelId": "909090","state": 0,"getResponse": "","response": ""}
2.onLocalInvitationCanceled (回傳給主叫:呼叫邀請已被取消)
{"rtmEvent":"onLocalInvitationCanceled","calleeId":"123","content": "","channelId":"909090","state": 0}
3.onLocalInvitationFailure (回傳給主叫:呼叫邀請行程失敗)
{"rtmEvent":"onLocalInvitationFailure","calleeId": "123","content": "","channelId":"909090","state": 0,"code": 0}
4.onLocalInvitationReceivedByPeer (回傳給主叫:被叫已收到呼叫邀請)
{"rtmEvent":"onLocalInvitationReceivedByPeer", "calleeId": "123","content": "","channelId": "909090","state":0}
5.onLocalInvitationRefused (回傳給主叫:被叫已拒絕呼叫邀請)
{"rtmEvent":"onLocalInvitationRefused","calleeId":"123", "content":"","channelId":"909090","state": 0,"getResponse": "","response": ""}
6.onRemoteInvitationAccepted (回傳給被叫:接受呼叫邀請成功)
{"rtmEvent":"onRemoteInvitationAccepted","callerId":"123","content":"","channelId":"909090","state": 0,"response": ""}
7.onRemoteInvitationCanceled (回傳給被叫:主叫已取消呼叫邀請)
{"rtmEvent":"onRemoteInvitationCanceled","callerId": "123", "content": "","channelId":"909090","state": 0}
8.onRemoteInvitationFailure (回傳給被叫:來自主叫的呼叫邀請行程失敗)
{"rtmEvent":"onRemoteInvitationFailure","callerId":"123","content":"","channelId":"909090","state":0}
9.onRemoteInvitationReceived (回傳給被叫:收到一個呼叫邀請)
{"rtmEvent":"onRemoteInvitationReceived","callerId":"123","content":"","channelId":"909090","state": 0}
10.onRemoteInvitationRefused(回傳給被叫:拒絕呼叫邀請成功)
{"rtmEvent":"onRemoteInvitationRefused","callerId":"123", "content": "","channelId":"909090","state":0,"response": ""}
6、總結
以上就是大部分重要的介面,基本上都已經介紹完了,歡迎大家下載使用,目前anyRTC已經用uni-app實作了實時視頻通話和實時訊息送達,如果大家還有什么疑問,可以在評論區留言!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/246582.html
標籤:其他
上一篇:Android學習筆記
下一篇:安卓學習日志 — Day02
