Angular 2& Intercom.io

时间:2016-07-13 03:34:43

标签: angular webpack intercom

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

内部通信SPA说明为here

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

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]

  

物业'对讲机'类型' Window'。

上不存在

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

4 个答案:

答案 0 :(得分:2)

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

更新角度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 
});

答案 1 :(得分:0)

我的名字是Martin I,他是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);}}})()

如果你有,而且它仍然是你仍然看到这个问题,最好放在Intercom并通过我们在右下角的信使取得联系。或发送电子邮件至team@intercom.io,我们可以在那里与您联系!

答案 2 :(得分:0)

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

然后只需使用window.Intercom:window.Intercom('update');

答案 3 :(得分:0)

我很高兴地通知您,有一个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