我想在我的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使其工作并继续进行?
答案 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