Сегодня мы отгрузили в Google Play
Приложение для iPhone/iPad будет выпущено чуть позже.
Что нового в этой версии:
- Модификация ресурсов приложения - панельки, кнопки, задний фон
- Исправлены ошибки
- Увеличена стабильность приложение
- Исправлена ошибка с загрузкой документов
Самое главное изменение - персонализация ресурсов.
Сейчас приложение для разработчиков использует стандартные панели красного цвета, стандартные размеры и цвета.
[spoiler]
Теперь разработчик мобильного приложения может поменять дизайн нативных элементов элементов. Сделать это можно с помощью config.php
config.php
Как вы помните данные файл является своего рода навигацией для приложения. Именно этот файл запрашивается при подключении приложения к сайту.
Теперь конфигурация должна содержать дополнительный ключ "settings" - путь к файлу настроек от корня сайта, и ключь "hash" - признак модификации конфигурации.
<? header("Content-Type: application/x-javascript"); $hash = "bx_random_hash"; $config = array("appmap" => array("main"=>"/myfirst_app/", "left"=>"/myfirst_app/left.php", "settings" => "/myfirst_app/settings.php", "hash" =>substr($hash, rand(1, strlen($hash))) ) ); echo json_encode($config); ?> |
- Приложение запрашивает config.php
- Если есть ключ settings и hash, то запрашивается файл, который указан в качестве значения ключа settings
- Если ключ hash не изменялся с момента последнего запроса файла конфигурации ресурсов, то файл НЕ будет запрошен повторно.
Что представляет из себя файл схемы ресурсов:
<? header("Content-Type: application/x-javascript"); $settings = array( "buttons" => array( "stretchable" => array( "flag" => "YES", "main_position_horizontal" => "0.0",//точка по горизонтали для растягивания кнопки "main_position_vertical" => "0.0",//точка по вертикали для растягивания кнопки "back_text_position_horizontal" => "5.0",//точка по горизонтали для растягивания кнопки (ios) "back_text_position_vertical" => "0.0"//точка по вертикали для растягивания кнопки(ios) ), "default_back_button" => "back_text", "button_height" => "35.0", //ширина кнопки "button_width" => "100.0", //высота кнопки "main_background_image" => "/myfirst_app/img/button.png", //растягиваемый фон кнопки "back_text_background_image" => "/myfirst_app/img/button.png", //растягиваемый фон кнопки назад "type" => array( "flag" => "/myfirst_app/img/menu_icon_finish.png",//своя иконка флажка для кнопки "green_cross" => "/myfirst_app/img/green_cross.png",//какая-то другая иконка ) ), "controller_settings" => array("main_background" => array( "image" => "/myfirst_app/img/back.png", //основной фон приложения "color" => "#AFFBB3"// цвет фона, имеет приоритет перед image ), "loading_background" => array( "image" => "/myfirst_app/img/back1.png", //фон экрана загрузки "color" => "#F0F0F0"//цвет экрана загрузки, имеет приоритет перед image ), "navigation_bar_image" => "/myfirst_app/img/panel2.png", //фон навигационной панели "navigation_bar_image_large" => "/myfirst_app/img/panel2.png", //фон навигационной панели для планшетов "toolbar_bar_image" => "/myfirst_app/img/panel.png", //фон тулбара ios "toolbar_bar_image_large" => "/myfirst_app/img/panel.png", //фон тулбара для планшетов ios ), "table" => array( "background_cell_image" => "/myfirst_app/img/a_panel.png", //фон ячейки списка "row_height" => "150.0",//высота ячейки "row_height_large" => "63.0"//высота ячейки планшетная ), "pull_down" => array( "icon" => "/myfirst_app/img/down_arrow.png",//стрелочка для пулдауна "text_color" => "#A3F2CE",//цвет текста пулдауна ) ); echo json_encode($settings); ?> |
Если вы все сделали правильно, то после введения пути к приложению и нажатия кнопки "войти" вы увидите "бегающие процентики" - приложения распознает конфиг и качает указанные файлы:
Далее вы можете увидеть подобную картину:
После экспериментов, после того как вы определились со своим дизайном создайте заявку на сборку с указанием домена, не меняя конфигурацию - именно её мы будем брать при сборке приложения. В дальнейшем предусмотрим затягивание ресурсов уже готовыми приложениями.
Таким образом можно будет менять нативный дизайн без пересборки.
Пример моего бэкенда -
Рекомендованный размер для кнопок: 20x40, чтобы они корректно растягивались.
Если фон кнопки будет 20x40, тогда желательное соотношение сторон названных выше параметров следует выставлять в отношении - 1:2 - для эстетической красоты )
И, кстати, использовал Вашу стрелку pulldown - на планшете Samsung Galaxy Tab 2.0 (Android 4.1.2) - она раза в 3 больше, чем у Вас на скриншоте. Надо учесть масштабирование. Уменьшил рисунок на -70%.
P.S. Может кому пригодится - css контекстного меню приложения (left.php) можно посмотреть в /bitrix/templates/eshop_app/components/bitrix/mobileapp.menu/mobile/template.php.
Если фон кнопки будет 20x40, тогда желательное соотношение сторон названных выше параметров следует выставлять в отношении - 1:2 - для эстетической красоты )
Кнопка растягивается по параметрам main_position_horizontal и main_position_vertical.
main_position_horizontal- пиксель по оси X, он будет тянуться при растяжении кнопки по горизовантали
main_position_vertical- пиксель по оси Y, он будет растягиваться при растяжении кнопки по вертикали
По моим расчетам через 2-3 дня, зависит от них.
И поддержки Retina насколько я понял нет?
приведите плиз код корректно работающего takePhoto().
А так же может кто-то подскажет, какой метод вызвать чтобы вернуться на предыдущую страницу (аналогичный жест перелистывания назад)?
В Android:
drop:true - закрывается текущая страница A, осуществляется переход на предыдущую B, свайпом вернуться на страницу A нельзя - она и страницы после нее в цепочке удалены.
drop:false - осуществляет переход с текущей страницы A назад на страницу B, но пользователь может вернуться на страницу A свайпом и другие страницы после нее в цепочке навигации
В iOS:
drop:true - закрывается текущая страница A и удаляется из кэша, осуществляется переход на предыдущую B. Таким образом, если открыть страницу A снова (открыть тот же урл), то она будет грузиться с сервера заново.
drop:false - осуществляет переход с текущей страницы A назад на страницу B. Страница A не удаляется из кэша - при повтном переходе по урлу страницы A она полностью откроется из кэша без запроса на сервере и на ней сгенерируются события:
* onOpenPageAfter
* onOpenPageBefore
* onHidePageAfter
* onHidePageBefore
Данные событие предназначены для обработки открытия страницы из кэша, обработки перехода на страницу свайпом (в Android), да и вообще для обработки события появления станицы на экране.
будем ждать дальнейших обновлений.
ссылку
Рекомендую первый вариант.
Не рекомендую
В этом случае отрабатывает двойное открытие - тут видимо и есть ваша проблема.
В вообще в мобильном приложении предпочтительнее использовать именно блоки с обработчиком onclick (не ссылки), еще лучше использовать FastButton:
В этом экран откроется на 300 миллисекунд быстрее.
Также не понял пока как убрать из шапки кнопку "В корзину"и добавить туда, например, логотип компании вместо "Заголовка"!В нем подключение компонента вывода левого меню bitrix:mobileapp.menu
Смотрите соответственно используемый там шаблон (обычно mobile).
В template.php шаблона есть строки
Похоже я многого хочу)))
И как сделать кнопку выхода из приложения?
У вас на странице где-то вызывается функция app.pullDown(). Если вы используете стандартное решение магазина - то посмотрите вызов app.pullDown в шаблоне, в файле header.php
Имел ввиду попап-загрузчик
На андроидах наблюдается следующая картина:
Не работают любые свайпы на элементах, поддерживающих их.
Проверял на:
- стандартном слайдере фильтра (цены)
- нестандартном слайдере фильтра, (
- карусельке (
Результат во всех случаях один:
- свайп влево немного сдвигает элемент, после чего (подозреваю что встроенные скрипты приложения перехватывают событие) перестаёт реагировать.
- свайп вправо - переход на предыдущую страницу, либо открытие меню.
На iOS все эти скрипты работают как ожидается.
Отписался так же на play market. Надеюсь проблему можно ка-то решить.
Поскольку старые настройки уже не используются в новой версии приложения.
Новый вид идет таким образом:
А как (и можно ли) организовать в приложении авторизацию через социальные сети?
- проверить в какой инфоблок добавлен элемент. Если с новостями, то продолжаем
- проверить что подключен модуль pull
- если модуль работает в интерактивном режиме и на сервере стоит модуль nginx Сервер очередей (обязателен для отправки PUSH), то отослать по очереди пуш уведомление пользователям из какой-то конкретной группы пользователей или всем.
В помощьВ помощь
в файле settings.php устанавливаю свой тип кнопки chevron_left таким образом
если при всем остальном как есть заменить тип кнопки на стандартный например "plus", кнопка (+) выводится
ну я чесслово пробовал так, не получалось, а тут сработало.. правда к слову сказать в этот раз я обновил весь кеш как на сайте так и на планшете на котором тестирую, может и это помогло..
все примеры про верхнюю панель
где найти про обычные 5 кнопок снизу
Удалось ли вам решить данную задачу ?