3

我想在我的 Angular 2 应用程序中使用对讲机。

对讲 SPA 说明在这里

我已将脚本块放在我的 index.html 页面的头部,我的下一个想法是将以下内容放在我的应用程序组件中

ngOnInit()
{
    window.Intercom("boot", {
app_id: "abcd",
name: "Jane Doe", // Full name
email: "customer@example.com", // Email address
created_at: 1312182000 // Signup date as a Unix timestamp
});

但是,它不会编译说 [ts]

“窗口”类型上不存在属性“对讲机”。

如何使用 Angular2 和 webpack 使其工作并继续进行?

4

4 回答 4

4

我找到了将对讲机与 angular 2 集成的答案

更新 angular 2 的对讲指令而不是这个:

 window.Intercom("boot", {
    app_id: "abcd",
    name: "Jane Doe",
    email: "customer@example.com", 
    created_at: 1312182000 
    });

使用它来使其工作:

(<any>window).Intercom("boot", {
app_id: "abcd",
name: "Jane Doe", 
email: "customer@example.com",
created_at: 1312182000 
});
于 2016-08-02T01:50:13.413 回答
1

我很高兴地通知您,有一个 NPM 模块就是为此而生的!它在这里可用。https://www.npmjs.com/package/ng-intercom

最新版本还有更多对讲方式和指令,让您的生活更轻松!文档在这里:https ://github.com/CaliStyle/angular2-intercom/tree/1.0.0-alpha

阅读中篇文章:https ://medium.com/@wilsonhobbs/integrating-intercomjs-with-your-angular-app-with-ngintercom-da38b8bcd415

于 2017-07-14T01:46:58.487 回答
0

您可以将窗口声明为: declare let window:any;

然后正常使用window.Intercom:window.Intercom('update');

于 2017-06-25T20:01:04.010 回答
0

我叫 Martin,我是 Intercom 的客户支持主管之一。遇到了这个问题。

该错误看起来像对讲库没有加载。您是否将此脚本包含在代码中的其他位置。{app_id}使用您的应用 app_id切换?确定是被调用了吗?

(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;
    s.src='https://widget.intercom.io/widget/{app_id}';
    var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()

如果您有,并且确实存在,但您仍然看到此问题,最好进入对讲机并通过我们在右下角的信使取得联系。或发送电子邮件至 team@intercom.io,我们可以在那里与您联系!

于 2016-07-13T13:15:50.210 回答