如何在Angular 2中使用Twilio Client?

时间:2016-11-08 06:16:42

标签: angular typescript twilio twilio-click-to-call

我正在创建一个应用程序,我需要在其中实现Click To Call工具。因此,对于通信,我使用 Twilio客户端 。我试过了this example

现在我需要它,我需要在我的Angular 2应用程序中实现相同的功能。如何在我的Typescript中导入 Twilio Client 以及如何使用它?

我正在尝试在我的组件中导入Twilio,如

import * as Twilio from 'twilio'

但这不是导入它的正确方法。

2 个答案:

答案 0 :(得分:11)

Twilio开发者传播者在这里。现在我们没有任何TypeScript绑定,因此这样的捆绑将无法正常工作。我正在研究一些绑定,但同时我建议你使用脚本标记包含库,就像它在演示应用程序中完成的一样。您可以使用我们的Twilio CDN:

  <script type="text/javascript" src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script>

之后你必须让TypeScript了解它。为此,您目前必须使用declare const。不幸的是,在绑定完成之前,这不会给你任何TypeScript的类型检查的整洁,但它至少让你使用它。只需在计划使用Twilio代码的文件中添加以下行:

declare const Twilio: any;

希望有所帮助。

干杯, 多米尼克

答案 1 :(得分:1)

现在,当您从npm(https://www.npmjs.com/package/twilio-chat)安装Twilio Client Library时,它具有相应的类型定义,因此您只需编写import { Client, User } from "twilio-chat";,然后在组件中声明Client变量twilioClient: Client并创建它:

Client.create(token).then(client => {
        this.twilioClient = client
});

不幸的是,twilio-common没有d.ts,所以如果你想使用它,比如AccessManager,你需要这样做,所有变量都有any类型:

let AccessManager = require('twilio-common').AccessManager;
let accessManager = new AccessManager(token);

编辑:遗憾的是,出于某种原因,开始从依赖文件中的'twilio-chat'获取缺少d.ts模块的响应,所以看起来这个lib还没有准备好与TS一起使用:(。