nativescript-twilio
NativeScript Twilio SDK 插件
npm i --save nativescript-twilio

NativeScript Twilio

nativescript-twilio 是一个插件,它暴露了 Twilio Voice SDK,这是领先的语音解决方案平台。

注意:目前它仅用于进行外拨电话,适用于 Android 和 iOS

先决条件 / 要求

在您的 Nativescript 应用中安装插件

tns plugin add nativescript-twilio

用法

演示应用

设置

运行演示应用

  • 克隆存储库,cd src,然后运行 npm run demo.androidnpm run demo.ios

集成到您的 NativeScript 应用中

  • main.tsapp.ts 文件中,将以下代码放入以初始化 Twilio

import * as application from 'tns-core-modules/application';
import { initTwilio } from 'nativescript-twilio';
import { TwilioAppDelegate } from 'nativescript-twilio/delegate';

// The following endpoint should return the raw token in the request body
const accessTokenUrl = 'http://yourserver/path/to/access-token';
const accessTokenHeaders = {'Authorization': 'Token sometoken'};

initTwilio(accessTokenUrl, accessTokenHeaders);

if (application.ios) {
// register twilio app delegate in order to receive incoming calls
application.ios.delegate = TwilioAppDelegate;
}
  • 在您的代码的某个位置(例如,在某个 UI 组件的 loaded 事件中)您需要设置呼叫监听器,该监听器将处理呼叫的连接事件
  import { setupCallListener, setupPushListener } from 'nativescript-twilio';

// listener for inbound/outbound calls
const callListener = {
onConnectFailure(call, error) {
dialogs.alert(`connection failure: ${error}`);
},
onConnected (call) {
dialogs.alert('call connected');
},
onDisconnected (call) {
dialogs.alert('disconnected');
}
};

setupCallListener(callListener);

// listener for push notifications (incoming calls)
const pushListener = {
onPushRegistered(accessToken, deviceToken) {
dialogs.alert('push registration succeded');
},
onPushRegisterFailure (error) {
dialogs.alert(`push registration failed: ${error}`);
}
};

setupPushListener(pushListener);
  • 在用于拨打外拨电话的组件中,放入以下代码

import * as dialogs from 'tns-core-modules/ui/dialogs';
import { getAccessToken, Twilio } from 'nativescript-twilio';

const phoneNumber = '+1555365432';

getAccessToken() // it will use the Twilio configuration set before
.then((token) => {
const twilio = new Twilio(token);

const call = twilio.makeCall(phoneNumber);

// example of muting the call after 10 seconds
setTimeout(() => {
console.log('Muting call after 10 seconds...');
call.mute(true);
}, 10000);

// example of disconnecting the call after 30 seconds
setTimeout(() => {
console.log('Disconnecting call after 30 seconds...');
call.disconnect();
}, 30000);

})

API

函数

函数 描述
initTwilio(url: string, headers?: any) 通过传递访问令牌后端端点初始化 Twilio
getAccessToken(): Promise<string> 请求后端访问令牌。返回一个包含检索到的令牌的 Promise
setupCallListener(listener: any) 设置呼叫监听器,传递一个具有 onConnectFailureonConnectedonDisconnected 回调的对象
setupPushListener(listener: any) 设置推送通知监听器,传递一个具有 onPushRegisteredonPushRegisterFailure 回调的对象
unregisterPushNotifications(token: string, deviceToken: string, callback?: (error: any) => void) 注销推送通知(来电)

Twilio 方法

方法 描述
makeCall(senderPhoneNumber: any, phoneNumber: any, options?: any): Call 发起外拨电话。
toggleAudioOutput(toSpeaker: boolean) 仅限 iOS 设置音频会话输出到扬声器或不是。

呼叫方法

方法 描述
mute(value: boolean) 静音通话。
disconnect() 挂断通话。

许可证

Apache许可证版本2.0,2018年4月