Всем доброго времени суток. Версия 7.12.
В своё время работал с настройкой мобильного приложения, в т.ч. с добавлением кастомных элементов на страницы. Вроде тогда всё работало (в 7.10 и эмуляторе приложения для 7.10) - https://community.terrasoft.ru/questions/dobavlenie-kastomnyh-elementov…
Хотелось бы ещё раз разобрать задачу замещения страниц и добавления своих элементов по пунктам.
Итак, к примеру, я хочу как-то изменить страницу контакта в мобильном приложении (доработать, помимо обычного перетаскивания колонок).
Есть схема MobileContactPreviewPage, которая подключена в MobileApplicationManifestDefaultWorkplace у контакта в Models:
"Contact": {
"Preview": "MobileContactPreviewPage",
"RequiredModels": [
"Account",
"Contact",
"ContactCommunication",
"CommunicationType",
"Department",
"ContactAddress",
"AddressType",
"Country",
"Region",
"City",
"ContactAnniversary",
"AnniversaryType",
"Activity",
"SysImage",
"FileType",
"ActivityPriority",
"ActivityType",
"ActivityCategory",
"ActivityStatus",
"Job"
],
"ModelExtensions": [],
"PagesExtensions": [
"MobileContactRecordPageSettingsDefaultWorkplace",
"MobileContactGridPageSettingsDefaultWorkplace",
"MobileContactActionsSettingsDefaultWorkplace",
"MobileContactModuleConfig"
]
}Я заместил схему MobileContactPreviewPage, перенёс содержимое из оригинальной реализации полностью, добавил свою небольшую доработку- просто добавление кнопки на страницу:
/* globals Contact: false */
Terrasoft.LastLoadedPageData = {
controllerName: "ContactPreviewPage.Controller",
viewXType: "contactpreviewpageview"
};
Ext.define("ContactPreviewPage.View", {
extend: "Terrasoft.view.BasePreviewPage",
xtype: "contactpreviewpageview",
config: {
id: "ContactPreviewPage"
}
});
Ext.define("ContactPreviewPage.Controller", {
extend: "Terrasoft.controller.BasePreviewPage",
statics: {
Model: Contact
},
config: {
refs: {
view: "#ContactPreviewPage"
}
},
/**
* @inheritdoc
* @protected
* @overridden
*/
onCallPhoneStarted: function() {
this.callParent(arguments);
Terrasoft.PhoneCallLogUtils.openPage({
activityLinkColumnNames: [
{
parentColumnName: "Id",
activityColumnName: "Contact"
},
{
parentColumnName: "Account",
activityColumnName: "Account"
}
],
record: this.record
});
},
onLoadRecord: function(loadedRecord, callback) {
this.callParent([loadedRecord, function() {
Terrasoft.MessageBox.showMessage("onLoadRecord");
var panelItems = this.getView().getPanel().getItems();
var primaryColumnSet = panelItems.first();
//Кнопка
var controlbutton = this.getOurCustomButton(loadedRecord);
controlbutton.on("tap", function () {
loadedRecord.set("UsrImgData","");
}, this);
primaryColumnSet.add(controlbutton); //если добавляем в конце панели
}]);
},
getOurCustomButton: function(record) {
return Ext.create('Ext.Button', {
xtype: "button",
cls: "x-button x-button-primary-blue",
text: "Очистить"
});
},
});
Собственно, кнопки так и не появилось, сообщение showmessage тоже отсутствует. Версия приложения последняя, установил прямо с GooglePlay, проверяю всё непосредственно с телефона.
И ещё общий вопрос - что собственно, представляет собой приложение? Могу ли я туда выводить непосредственно html- или нативный javascript-код как в браузер? Будет ли при этом работать javascript-код на всех видах устройств?
Нравится
Добрый день, Денис!
А вы смотрели в dom дереве кнопка создалась? Может она есть, но просто не видна. Тогда придется поработать со стилями.
Приложение собой представляет одностраничное веб-приложение, т.е. html можно разве что в iframe'е попробовать вставить. А нативный JavaScript должен работать без проблем.
Золотарев Артем Андреевич,
Артём, спасибо за ответ.
Дело в том, что в приложении негде смотреть - консоли-то нету.. ну и потом, текст-то на кнопке хотя бы должен отобразиться. Где-нибудь есть эмулятор для 7.12?
html как-то добавляли в той теме по ссылке.
Ещё пробовал вместо MobileContactPreviewPage создавать свою версию с названием UsrMobileContactPreviewPage и аналогичным содержимым и подключать её на место оригинала в манифесте - тогда в приложении страница контакта вообще перестаёт открываться.
https://sun9-5.userapi.com/c830309/v830309684/143865/aieJi10t5ks.jpg (MobileContactPreviewPage)
https://sun9-7.userapi.com/c834401/v834401309/18b001/y7z3N8IY2FQ.jpg (UsrMobileContactPreviewPage)
Смородинов Денис,
тогда вам лучше обратиться в тех.поддержку, там по запросу предоставляют эмулятор и будет намного проще разрабатывать =)