在Angular Component中使用SnapEngage方法会引发错误

时间:2019-03-24 09:27:09

标签: javascript angular

我正在为我的应用程序使用SnapEngage小部件。该应用程序具有Angular组件和功能。我正在尝试使用SnapEngage方法(),但它不会调用/识别那些方法。请说明我是否应该从SnapEngage获得插件/导入。我收到错误消息,因为找不到名称“ SnapEngage”。在该行SnapEngage.allowChatSound(true);

includeSnapEngageWidget(){    
    if( SnapEngageEnabled ==="true"){
 
        var se = document.createElement('script'); 
        var userEmail = email;
        var userName = name;
  
        se.type = 'text/javascript'; 
        se.async = true;
        se.src = '//storage.googleapis.com/code.snapengage.com/js/'+ widgetId +'.js';
        var done = false;
        se.onload = (se as any).onreadystatechange = function() {
          if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
            done = true;
            /* Place your SnapEngage JS API code below */
            SnapEngage.allowChatSound(true);
           
          }
        };
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
    }
  }

强文本

2 个答案:

答案 0 :(得分:0)

如果您的应用程序找不到SnapEngage,则表示未加载js文件。加载应用程序后,请确保对'//storage.googleapis.com/code.snapengage.com/js/'+ widgetId +'.js';的调用已成功。

答案 1 :(得分:0)

通过创建外部* .js文件及其* .d.ts文件修复了该问题,并在脚本下的angular.cli.JSON中引用了* .js文件路径。在main.ts文件中导入了函数,并在angular中调用了该方法。