Всем доброго времени суток. Версия 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)
Смородинов Денис,
тогда вам лучше обратиться в тех.поддержку, там по запросу предоставляют эмулятор и будет намного проще разрабатывать =)