hms_callkit

一个使用100ms和flutter_callkit_incoming制作的通话示例项目。

入门

  • 克隆仓库
  • 运行 flutter pub get
  • 设置 100ms token 服务
  • 为通知设置 Firebase 服务

就这样,现在可以通过执行 flutter run 来运行项目了

如何测试

要测试应用程序,请在两台设备上安装该应用。

  • 从一台设备复制代码(FCM token)。我们称之为设备-1
  • 将此 token 粘贴到另一台设备上。我们称之为设备-2
  • 在设备-1 上按下“立即呼叫”按钮
  • 您将在设备-2 上收到通知
  • 在设备-2 上接听电话

设置 100ms token 服务

100ms token 服务负责在您接到电话或希望呼叫某人时加入房间。我们需要一个认证 token 来加入房间,我们也将通过 payload 将其发送给另一个对等方,以便接收方也可以加入房间。您可以在 join_service.dart 中找到这部分代码。

这是它的代码

Future<String> getAuthToken({required String roomId,required String tokenEndpoint,required String userId,required String role}) async {
  Uri endPoint = Uri.parse(
      tokenEndpoint);
  http.Response response = await http.post(endPoint,
      body: {'user_id': userId, 'room_id': roomId, 'role': role});
  var body = json.decode(response.body);
  return body['token'];
}

getAuthToken 返回认证 token,我们将用它来加入房间,并与接收方共享,以便他也能加入房间。

让我们了解一下这个函数中的参数

  • roomId

roomId 指的是您希望加入的房间。您可以在仪表板的房间部分找到 roomId。

  • tokenEndpoint

tokenEndpoint 是用于获取认证 token 的 URL。您可以在 100ms 仪表板的开发者部分找到 tokenEndpoint

  • userId

userId 可用于唯一标识用户,以便之后对该用户执行任何特定操作。

  • role

role 指的是您希望加入房间的角色。请确保给定的角色在给定 roomId 的房间模板中存在。

为通知设置 Firebase 服务

首先在 firebase 上创建一个项目。您可以在 这里 找到步骤

由于我们将使用 Firebase Messaging 来发送通知,请确保您的 Firebase 已启用 Blaze 计划,并从 Firebase Cloud Console 启用 Cloud MessagingFirebase Cloud Messaging API

cloud-console

要设置 Firebase 通知,请遵循 指南

该存储库已经包含一个 functions 文件夹,其中包含 Firebase 函数,因此您可以直接部署它们。

好了,您已准备好运行该应用程序。

应用程序的外观是这样的

有任何问题吗?请在 Discord 上联系我们

GitHub

查看 Github