В 5CMS уже все готово для подключения мобильного приложения к витрине, т.е. речь про приложение для покупателей в интернет-магазине.
Предполагается, что создаваемое приложение будет загружать в WebView данные, отдаваемые веб-сервером с установленной 5CMS.
Вся бизнес-логика находится на стороне веб-сервера, т.о. любой функционал (и любые изменения контента) реализованный на стороне сайта, автоматически становятся доступны в приложении.
Рекомендуется, чтобы приложение внутри себя, помимо вывода WebView, содержало native-ное левое и верхнее меню (напр. название приложения, поиск, иконка корзины), а также, при небходимости, библиотеку Push-рассылок.
Важные условия для приложения
- приложение через WebView должно отдавать UserAgent обязательно содержащий слово "5cms" и тип "android" или "iphone":
"аndroid, 5cms"
"iphone, 5cms"
- должно быть включено прослушивание JS
- кодировка UTF-8
- если обрабатываемая ссылка содержит файл (.zip,.gzip,.xls,.rar,.pdf,.doc,.txt,.png,.jpg,.gif,.odt,.ods,.odp,.psd,.cdr), то приложение должно разрешать его скачивание
- если обрабатываемая ссылка содержит протокол tel:, то вызывать приложение для звонка
Действия CMS
Получив UserAgent содержащий "5cms", CMS отдает мобильный дизайн (находится в директории design/html/mobile/) без верхнего тулбара и левого меню (т.е. без вывода вложенного шаблона toolbar.tpl).
Также отдает java-скриптом (прослушивание которых включили выше) в шаблоне index.tpl тип поиска по контенту, соответствующему открытой странице:
- Search.sendSearch - для Android со значениями: blog, articles, services, products, tags
- window.webkit.messageHandlers.search.postMessage - для iOS со значениями: blog, articles, services, products, tags
и в шаблоне cart_informer.tpl отдает кол-во товаров в корзине:
- Android.sendTotalProducts - для Android
- window.webkit.messageHandlers.cart.postMessage - для iOS
GET-запросы со стороны приложения
- Переход с иконки корзины по адресу: https://site.ru/cart
- Запуск поиска: /тип_поиска?keyword=текст_поиска
https://site.ru/blog?keyword=текст
Дополнительная информация
Переменные в шаблонах CMS:
- Отдаст не пустое значение, если UserAgent приложения содержит слово "5cms":
{$mobile_app}
- Отдаст "iphone", "ipad" или "android" в зависимости от того что указано в UserAgent:
{$uagent}
UPD: обновлено 09.05.2023