Интеграция JavaScript веб-плагин в Ionic 2
Я пытаюсь интегрировать платформу чата Applozic в мой проект Ionic 2, который я хочу экспортировать в Web, Android и iOS. Используя образец в качестве основы и создал applozic.d.ts & applozichv.js для процесса интеграции Javascript.
applozic.d.ts
interface AppLozicStatic {
initPlugin(): any;
}
declare var AppLozic : AppLozicStatic;
export = AppLozic;
applozichv.js
(function () {
var root = this;
var AppLozic = function (obj) {
if (obj instanceof AppLozic) return obj;
if (!(this instanceof AppLozic)) return new AppLozic(obj);
// this.EXIFwrapped = obj;
};
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = AppLozic;
}
exports.AppLozic = AppLozic;
} else {
root.AppLozic = AppLozic;
}
AppLozic.initPlugin = function () {
var $original;
// var $applozic = "";
var $applozic;
console.log("initPlugin");
$original = jQuery.noConflict(true);
$ = $original;
jQuery = $original;
if (typeof jQuery !== 'undefined') {
console.log("initPlugin 1");
$applozic = jQuery.noConflict(true);
$applozic.fn
.applozic({
baseUrl : 'https://apps.applozic.com',
userId : 'debug454545', //TODO: replace userId with actual UserId
userName : 'test', //TODO: replace userId with actual UserName
appId : 'applozic-sample-app',
// accessToken: 'suraj', //TODO: set user access token.for new user it will create new access token
ojq: $original,
// obsm: oModal,
//optional, leave it blank for testing purpose, read this if you want to add additional security by verifying password from your server https://www.applozic.com/docs/configuration.html#access-token-url
// authenticationTypeId: 1, //1 for password verification from Applozic server and 0 for access Token verification from your server
// autoTypeSearchEnabled : false,
// messageBubbleAvator: true,
notificationIconLink: "https://www.applozic.com/resources/images/applozic_icon.png",
notificationSoundLink: "",
readConversation: readMessage, // readMessage function defined above
onInit: onInitialize, //callback function execute on plugin initialize
maxAttachmentSize: 25, //max attachment size in MB
desktopNotification: true,
locShare: true,
video: true,
topicBox: true,
// mapStaticAPIkey: "AIzaSyCWRScTDtbt8tlXDr6hiceCsU83aS2UuZw",
// googleApiKey: "AIzaSyDKfWHzu9X7Z2hByeW4RRFJrD9SizOzZt4" // replace it with your Google API key
// initAutoSuggestions : initAutoSuggestions // function to enable auto suggestions
});
}
var oModal = "";
/*if (typeof $original !== 'undefined') {
$ = $original;
jQuery = $original;
if (typeof $.fn.modal === 'function') {
oModal = $.fn.modal.noConflict();
}
} else {
$ = $applozic;
jQuery = $applozic;
if (typeof $applozic.fn.modal === 'function') {
oModal = $applozic.fn.modal.noConflict();
}
}*/
//Sample json contains display name and photoLink for userId
function readMessage() {
//console.log(userId);
}
//callback function execute after plugin initialize.
function onInitialize(response, data) {
if (response.status === 'success') {
// $applozic.fn.applozic('loadContacts', {'contacts':contactsJSON});
// $applozic.fn.applozic('loadTab', 'shanki.connect');
//write your logic exectute after plugin initialize.
alert("success");
} else {
alert(response.errorMessage);
}
}
// init();
};
})();
Я добавил все выше созданные файлы, включая applozic.common.js
, applozic.fullview.js
а также jquery.min.js
к assets/js
папку и связал их в моем index.html
, Это был единственный способ, которым я мог получить метод JavaScript в applozic.js
казнить из моего chat.ts
,
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я получаю ошибку:
TypeError: Cannot read property 'noConflict' of undefined` in `applozic.js`
на линии
$original = jQuery.noConflict(true);
и, следовательно, остальная часть блока if также не выполняется.
В попытке заставить jQuery работать в проекте, я попытался установить его через NPM, выполнив следующие команды:
npm install jquery --save
npm install @types/jquery --save
Но это привело к проблеме в ionic serve
дает следующую ошибку:
JavaScript heap out of memory
Мне действительно нужна помощь в исполнении моего applozic.js
файл для инициализации и вызова функций плагина чата.
0 ответов
Сначала вы должны определить реальную проблему.
Если проблема связана с установкой jquery, вы можете отладить ее, используя следующую строку.
console.log("Jwuery Text : " , $('.testClassName'));
Если ниже
log
полностью печатается в консоли, то в
jquery
.
Эта проблема с размером памяти решается с помощью
reInitialize
куча памяти с помощью этой команды:
set NODE_OPTIONS=--max_old_space_size=4096
or
node --max_old_space_size=4096
После запуска этой команды в командной строке попробуйте обслужить проект или создать проект.