跳过主要内容

Twilio Voice Capacitor

使用 Twilio Voice 进行 VoIP 通话

安装

bun add @capgo/capacitor-twilio-voice bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-twilio-voice
  • pnpm add @capgo/capacitor-twilio-voice
  • yarn add @capgo/capacitor-twilio-voice

指南

如何在Capacitor中使用Twilio Voice

使用 @capgo/capacitor-twilio-voice

将 Twilio Voice SDK 集成到 Capacitor 中

安装

bun add @capgo/capacitor-twilio-voice
bunx cap sync

bunx cap sync 将插件的本机 code 复制到您的本机项目中。每次升级插件后都重新运行它。

导入

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

API 简介

方法 描述
login 使用 Twilio Voice 认证用户并使用访问令牌
logout 注销当前用户并从 Twilio Voice 注销
isLoggedIn 检查用户是否已登录并具有有效的访问令牌
makeCall 发起一个电话号码或客户端的呼叫。
acceptCall 接听一个正在呼叫的电话。
rejectCall 拒绝一个正在呼叫的电话。
endCall 结束一个正在进行的呼叫。
muteCall 在一个正在进行的呼叫中静音或解静音麦克风。
setSpeaker 在一个正在进行的呼叫中启用或禁用扬声器模式。
getCallStatus 获取一个正在进行的呼叫的当前状态。
checkMicrophonePermission 检查麦克风权限是否已被授予。
requestMicrophonePermission 请求用户授予麦克风权限。

示例

login()

使用访问令牌通过Twilio Voice验证用户。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

const result = await CapacitorTwilioVoice.login({
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
});
console.log('Login successful:', result.success);

logout()

注销当前用户并从Twilio Voice注销。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

const result = await CapacitorTwilioVoice.logout();
console.log('Logout successful:', result.success);

isLoggedIn()

检查用户是否已登录并具有有效的访问令牌。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

const status = await CapacitorTwilioVoice.isLoggedIn();
if (status.isLoggedIn && status.hasValidToken) {
  console.log('User identity:', status.identity);
} else {
  // Re-authenticate the user
}

makeCall()

发起一个电话号码或客户端的呼叫。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

// Call a phone number
const result = await CapacitorTwilioVoice.makeCall({
  to: '+1234567890'
});
console.log('Call SID:', result.callSid);

// Call another Twilio client with a readable name for CallKit Recents
await CapacitorTwilioVoice.makeCall({
  to: 'client:alice',
  displayName: 'Alice Smith'
});

// Call a PSTN number using a specific caller ID
await CapacitorTwilioVoice.makeCall({
  to: '+1234567890',
  callerId: '+10987654321'
});

acceptCall()

接听一个来电。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => {
  console.log('Incoming call from:', data.from);
  const result = await CapacitorTwilioVoice.acceptCall({
    callSid: data.callSid
  });
  console.log('Call accepted:', result.success);
});

rejectCall()

拒绝一个来电。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => {
  if (shouldRejectCall(data.from)) {
    await CapacitorTwilioVoice.rejectCall({
      callSid: data.callSid
    });
  }
});

上表列出了 12 个核心方法。 监听器和版本辅助函数,以及每个方法的完整契约,均在 __CAPGO_KEEP_0__ 仓库中进行了文档。 GitHub 仓库.

返回一个句柄。 当屏幕卸载时,或者

addListener 清除所有监听器。 handle.remove() 全局参考 CapacitorTwilioVoice.removeAllListeners() events

handle

继续使用@capgo/capacitor-twilio-voice

如果您正在使用 使用@capgo/capacitor-twilio-voice 来规划原生插件工作,连接它与 @capgo/capacitor-twilio-voice 查看@capgo/capacitor-twilio-voice中的实现细节 开始 查看开始中的实现细节 Capgo插件目录 查看Capgo插件目录中的产品工作流程 Capacitor Capgo 为 Capacitor Capgo 的实现细节 添加或更新插件 添加或更新插件的实现细节

常见问题

Twilio Voice 插件常见问题

如何在 Capacitor 应用中安装 Twilio Voice 插件?

运行 "bun add @capgo/capacitor-twilio-voice" (或 "npm install @capgo/capacitor-twilio-voice"),然后运行 "bunx cap sync" 以便 iOS 和 Android 项目捕获 native code。从 "@capgo/capacitor-twilio-voice" 导入您的应用 code。

Does @capgo/capacitor-twilio-voice 支持 React、Vue 和 Angular?

是的。Twilio Voice 是一个 Capacitor 包,因此它与任何运行在 Capacitor 内部的 Web 框架兼容,包括 Ionic、React、Vue、Angular、Svelte 和普通 JavaScript。

哪个 Capacitor 版本支持 @capgo/capacitor-twilio-voice?

Capgo 插件遵循 Capacitor 的主要版本:使用与您的 Capacitor 主要版本匹配的插件主要版本(例如插件 v8 与 Capacitor 8)。在 GitHub README 中的兼容性表格中列出了维护的版本。

Is @capgo/capacitor-twilio-voice free and open source?

是的。源代码 code 公开在 GitHub 上,https://github.com/Cap-go/capacitor-twilio-voice/,并且该包从 npm 免费安装。欢迎 bug 报告和 pull 请求。

我可以在没有 App Store 评论的情况下更新使用 Twilio Voice 的 code 吗?

code 和 Capgo 的升级或安装会改变原生 code,需要重新构建 App Store。随后,使用 Capgo 实时更新的 JavaScript、HTML 和 CSS 变更可以立即发布。

不必等待应用审核即可将Twilio Voice更新推送给用户

一旦插件在您的商店构建中,Capgo即刻将您的JavaScript、HTML和CSS更新推送给用户

开始使用Capgo