在Ionic 2中集成JavaScript web插件

我正在尝试将Applozic聊天平台集成到我的Ionic 2项目中,我希望将其导出到Web、Android和iOS。以样本为基础,创建applozic.d.ts&用于Javascript集成过程的applozichv.js

applozic.d.ts

接口应用程序静态{
initPlugin():任意;
}
声明变量AppLozic:AppLozicStatic;
出口=AppLozic;

applozichv.js

(函数(){
var root=这个;
var AppLozic=功能(obj){
if(obj instanceof AppLozic)返回obj;
如果(!(AppLozic的这个实例))返回新的AppLozic(obj);
//this.EXIFwrapped=obj;
};
if(导出类型!==‘未定义’){
if(模块类型!==“未定义”和模块导出){
exports=module.exports=AppLozic;
}
exports.AppLozic=AppLozic;
}否则{
root.AppLozic=AppLozic;
}
AppLozic.initPlugin=函数(){
var$原件;
//var$applozic=“”;
var$applozic;
log(“initPlugin”);
$original=jQuery.noConflict(true);
$=$原件;
jQuery=$original;
if(jQuery的类型!==“未定义”){
console.log(“initPlugin 1”);
$applozic=jQuery.noConflict(true);
$applozic.fn
阿普洛齐奇先生({
baseUrl:'https://apps.applozic.com',
userId:'debug4545',//TODO:将userId替换为实际的userId
用户名:'test',//TODO:用实际用户名替换userId
appId:“applozic示例应用程序”,
//accessToken:'suraj',//TODO:设置用户访问令牌。对于新用户,它将创建新的访问令牌
ojq:$原件,
//obsm:oModal,
//可选,出于测试目的保留为空,如果您想通过验证服务器上的密码来增加额外的安全性,请阅读此内容https://www.applozic.com/docs/configuration.html#access-令牌url
//authenticationTypeId:1,//1用于从Applozic服务器验证密码,0用于从您的服务器验证访问令牌
//已启用自动类型搜索:false,
//是的,
通知IConLink:“https://www.applozic.com/resources/images/applozic_icon.png",
notificationSoundLink:“”,
readConversation:readMessage,//上面定义的readMessage函数
onInit:onInitialize,//在插件初始化时执行回调函数
maxAttachmentSize:25,//最大附件大小(MB)
desktopNotification:true,
洛切:是的,
视频:没错,
主题框:是的,
//mapStaticAPIkey:“AIzaSyCWRScTDtbt8tlXDr6hiceCsU83aS2UuZw”,
//GoogleAPI密钥:“aizasydkfwhzu9x7z2hbyew4rrfjrd9sizozt4”//用您的Google API密钥替换它
//initAutoSuggestions:initAutoSuggestions//用于启用自动建议的函数
});
}
var-oModal=“”;
/*if(typeof$original!=“未定义”){
$=$原件;
jQuery=$original;
if(typeof$.fn.modal==='function'){
oModal=$.fn.modal.noConflict();
}
}否则{
$=$applozic;
jQuery=$applozic;
if(typeof$applozic.fn.modal=='function'){
oModal=$applozic.fn.modal.noConflict();
}
}*/
//示例json包含用户ID的显示名称和photoLink
函数readMessage(){
//console.log(userId);
}
//插件初始化后执行回调函数。
函数初始化(响应、数据){
如果(response.status==“success”){
//$applozic.fn.applozic('loadContacts',{'contacts':contactsJSON});
//$applozic.fn.applozic('loadTab','shanki.connect');
//在插件初始化后编写逻辑执行。
警惕(“成功”);
}否则{
警报(response.errorMessage);
}
}
//init();
};
})();

我将上面创建的所有文件包括applozic.common.jsapplozic.fullview.jsjquery.min.js添加到assets/js文件夹中,并将它们链接到我的index.html中。这是从我的chat.ts中执行applozic.js中的JavaScript方法的唯一方法

我现在面临的问题是我得到了错误:

TypeError:无法读取'applozic.js'中未定义的'noConflict'属性`

在线

$original=jQuery.noConflict(true);

因此,if块的其余部分也没有执行

为了使jQuery在项目中工作,我尝试通过NPM执行以下命令来安装它:

npm安装jquery——保存
npm安装@types/jquery–保存

但这导致了爱奥尼亚发球中出现问题,出现以下错误:

JavaScript内存不足

我真的需要帮助执行我的applozic.js文件来初始化和调用聊天插件函数

您应该首先确定实际问题

若问题出现在jquery安装中,那个么您可以使用下面的代码行调试它

console.log("Jwuery Text:",$('.testClassName'))

如果控制台中完全打印了下面的日志,则jquery中没有错误

通过使用以下命令,使用重新初始化内存堆来解决此内存大小问题:

设置节点选项=--max\u old\u space\u size=4096
或
节点——最大旧空间大小=4096

在该命令运行到命令提示符后,尝试为项目提供服务或生成项目

发表评论