uni-app技术分享| uni-app转小程序-实时消息

微信小程序 实现实时消息与 uniapp 转码成微信小程序 实现实时消息两者是一样的,区别仅仅是一个是原生小程序一个是 uniapp 转码成小程序。
本文主要简单实现点对点消息与呼叫邀请等相关功能实现。
uniapp转码成小程序逻辑与小程序逻辑基本一致。

引入 RTM SDK

使用 web RTM-SDK 即可,小程序的实时消息与 WEB 的实时消息共用 SDK。

使用 1.0.5 版本,否则转成小程序时可能会无法正常使用

npm i ar-rtm-sdk@1.0.5
// 引入 anyRTM 
import ArRTM from "ar-rtm-sdk"

代码封装

你可以在页面里边直接调用,也可单独封装成一个 js。
本人喜欢将 RTM 封装成一个 js 文件。

本地存放

const Store = {
   
	// RTM 客户端
	rtmClient: null,

	// 主叫邀请实例
	localInvitation: null,
	// 被叫收到的邀请实例
	remoteInvitation: null,
}

回调封装

本文仅进行简单封装,如需更复杂逻辑请自行更改。

// RTM 监听事件
const rtmEvent = {
   
	// 主叫:被叫已收到呼叫邀请
	localInvitationReceivedByPeer: () => {
   
		uni.hideToast();
		uni.showToast({
   
			title: '被叫已收到呼叫邀请',
			icon: 'none',
			duration: 2000,
			mask: true,
		});

	},
	// 主叫:被叫已接受呼叫邀请
	localInvitationAccepted: async (response) => {
   
		console.log("主叫:被叫已接受呼叫邀请", response);
		uni.hideToast();
		uni.showToast({
   
			title: '被叫接受呼叫邀请',
			icon: 'none',
			duration: 2000,
			mask: true,
		});

	},
	// 主叫:被叫拒绝了你的呼叫邀请
	localInvitationRefused: (response) => {
   
		console.log("主叫:被叫拒绝了你的呼叫邀请", response);
		uni.hideToast();
		uni.showToast({
   
			title: '被叫拒绝呼叫邀请',
			icon: 'none',
			duration: 2000,
			mask: true,
		});
	},
	// 主叫:呼叫邀请进程失败
	localInvitationFailure: (response) => {
   
		console.log("主叫:呼叫邀请进程失败", response);
		uni.hideToast();
		uni.showToast({
   
			title: '呼叫邀请失败',
			icon: 'error',
			duration: 2000,
			mask: true,
		});
	},
	// 主叫:呼叫邀请已被成功取消 (主动挂断)
	localInvitationCanceled: () => {
   
		console.log("主叫:呼叫邀请已被成功取消 (主动挂断)");
	},

	// 被叫:监听收到来自主叫的呼叫邀请
	RemoteInvitationReceived: async (remoteInvitation) => {
   
		console.log("监听收到来自主叫的呼叫邀请", remoteInvitation);
		// 监听回调
		rtmInternal.inviteProcessing(remoteInvitation)
		// 显示模态弹窗
		uni.showModal({
   
			title: '提示',
			content: '收到来自主叫的呼叫邀请',
			cancelText: '拒绝',
			confirmText: '接听',
			success: function(res) {
   
				if (res.confirm) {
   
					console.log('用户点击确定');
					remoteInvitation.accept();
				} else if (res.cancel) {
   
					console.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值