指南
如何在 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 |
使用 access token 通过 Twilio Voice 验证用户身份。 |
logout |
让当前用户退出登录,并从 Twilio Voice 取消注册。 |
isLoggedIn |
检查用户当前是否已登录并持有有效的 access token。 |
makeCall |
向电话号码或客户端发起外呼。 |
acceptCall |
接听呼入电话。 |
rejectCall |
拒接呼入电话。 |
endCall |
结束当前通话。 |
muteCall |
在通话过程中静音或取消静音麦克风。 |
setSpeaker |
启用或禁用扬声器模式。 |
getCallStatus |
获取当前通话的状态。 |
checkMicrophonePermission |
检查是否已获得麦克风权限。 |
requestMicrophonePermission |
请求用户授权麦克风权限。 |
示例
login()
使用 access token 通过 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()
检查用户当前是否已登录并持有有效的 access token。
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 个核心方法。监听器、版本辅助方法以及每个方法的完整接口约定,详见 GitHub 仓库.
监听事件
addListener 会返回一个句柄。调用 handle.remove() 在屏幕卸载时,或者调用 CapacitorTwilioVoice.removeAllListeners() 以清除所有监听器。
完整参考文档
继续使用 @capgo/capacitor-twilio-voice
如果你正在使用 使用 @capgo/capacitor-twilio-voice 要规划原生插件工作,请将其与 @capgo/capacitor-twilio-voice 有关 @capgo/capacitor-twilio-voice 的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关添加或更新插件的实现细节。