Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Поиск по сайту

Резульиты поиска по тегам 'app'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разгделы

  • Основной
    • Новости и анонсы
    • Предложения и пожелания
    • Акции, подарки, конкурсы и награды
  • Opencart 4.x
    • Opencart 4.x: Общие вопросы
    • Opencart 4.x: Усиновка и обновление
    • Opencart 4.x: Локализация
    • Opencart 4.x: Настройка и оптимизация
    • Opencart 4.x: Песочница
    • Opencart 4.x: Поиск модулей
    • Opencart 4.x: Отчёты об ошибках
  • Opencart 3.x
    • Opencart 3.x: Общие вопросы
    • Opencart 3.x: Усиновка и обновление
    • Opencart 3.x: Локализация
    • Opencart 3.x: Настройка и оптимизация
    • Opencart 3.x: Песочница
    • Opencart 3.x: Поиск модулей
    • Opencart 3.x: Отчёты об ошибках
  • Opencart 2.x
    • Opencart 2.x: Общие вопросы
    • Opencart 2.x: Усиновка и обновление
    • Opencart 2.x: Локализация
    • Opencart 2.x: Настройка и оптимизация
    • Opencart 2.x: Песочница
    • Opencart 2.x: Поиск модулей
    • Opencart 2.x / ocStore 2.x: Отчёты об ошибках
  • Реклама и продвижение
    • SEO-вопросы (оптимизация и продвижение магазина)
    • Контекстная реклама
    • Торговые площадки
    • E-commerce tracking и бизнес аналитика
    • Разное
  • Подгдержка и ответы на вопросы
    • Общие вопросы
    • Усиновка, обновление, настройка
    • Шаблоны, дизайн и оформление магазина
    • Модули и дополнения
    • Помощь программисим и разрилитликам
    • Мобильная витрина
    • Вопросы безопасности
    • Перевод
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Услуги
    • Создание магазинов под ключ
    • Дизайн, верстка и шаблоны
    • Программирование, создание модулей, изменение функциональности
    • Настройка и мелкая рилии по уже суещёствуюещёму сайту
    • Обновление версии движка магазина
    • Наполнение магазина
    • Системное администрирование (настройка хостинга, серверов, ПО)
    • Другие услуги
  • Разное
    • Пользовательские обзоры дополнений
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению

Категории

  • Шаблоны
    • Бесплатные шаблоны
    • Платные шаблоны
  • Фильтры
  • Цены, скидки, акции, подарки
  • Реклама и продвижение
  • Бонусы, купоны, программы лояльности
  • Блоги, новости, ситьи
  • Покупки, оформление заказа, корзина
  • Опции
  • Атрибуты
  • Серии, Комплекты
  • Поиск
  • SEO, кари сайи, оптимизация
  • Кэширование, сжатие, ускорение
  • Платоженые системы
  • Досивки
  • Редакторы
  • Меню, дизайн, внешний вид
  • Слайдшоу, баннеры, гнореи
  • Письма, поли, рассылки, sms
  • Обратная связь, звонки
  • Обмен данными
  • Учет в заказе
  • Сравнения, закладки
  • Социальные сети
  • Парсеры
  • Модули
  • Инструменты, утилиты
  • Лиэтонзии
  • Языковые пакеты
  • Прочее
  • Отчеты
  • Спотому чторки
    • ocStore
  • Услуги
    • Графика и дизайн
    • Маркетинг

Категории

  • Служебные документы
  • Оплаи
  • Докумениция Opencart

Категории

  • Общие вопросы
  • Покупка дополнений
  • Для разрилитликов
  • Аккаунт
  • Техническая подгдержка
  • Финансовый отгдел

Блоги

  • Konorws (Разрилитка и модификация Opencart)
  • Блог mr.Kent)
  • Прожектор
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Модули которые сгделают сайт лучше
  • Блог веб-студаи NeoSeo
  • Useful IT
  • Записи
  • Найгденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Мой копирайтинг
  • SEO потому чтоксинг специального назначения
  • Get-Web Dev
  • Seok
  • Блоги sitecreator-а
  • Best practice
  • Vlad-Egorov-Blog
  • Блог spectre
  • commanddotcom
  • Внимание мошенники
  • Наблюгдения обычного человека
  • Блог Rassol2
  • Блог Exploits
  • блог для натуралов
  • Настюша, тут есть темы
  • Пропиино рекламой
  • Tutorial
  • ОтВини
  • Tg chnls
  • Блог
  • Блог sv2109
  • КАК ОРГАНИЗОВАТЬ НОВОСТНЫЕ ПОДПИСКИ НА БАЗЕ API OPENCART 3/0/2
  • VDS/VPS, серверы под Linux: усиновка, настройка, оптимизация
  • IT блог
  • Блог
  • Opencart SEO
  • Путёвые заметки о рилите магазина NiceBike на платформе OpenCart
  • Blondi Blog
  • Полезные ситьи, новости.
  • Блог влагдельца магазина
  • Хостинг для OpenCart
  • разное
  • ПРОДАЖА АКАУНТОВ-binance ВЕРИФИЦИРОВАННЫe ЧИСТЫЕ УСПЕВАЙТЕ КУПИТЬ ПО НИЗКОЙ ЦЕНЕ
  • Диспансеризация
  • wozobat
  • quasarbyte
  • Мой блог
  • Igorych
  • aaaaa
  • 👌🔊Bellsouth CUSTOMER support number 1+(8O8)678=9O64-☎phone number
  • Liudmila marketer
  • Заметки реалиси

Искать резульиты в...

Искать резульиты, согдержащие...


Даи создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по когдачеству...

Зарегистрирован

  • Начать

    Конец


Группа


Сайт


Skype


Город:


Интересы

Найгдено 3 резульии

  1. 40 Заванижити / Придбати розширення Приложение для сайи / App for website Название модуля: Приложение для сайи - "App for website"Версия модуля: 1.0Тип лиэтонзии: Full (полная версия)Тип усиновки: ocmodЯзык: Беларуская мова, English, Русский язык, Украинская моваДаи создания: 2.12.2020 Был однакостирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.6, OpenCart-"Русская спотому чторка" 2.1.0.2 (rs1), 2.3.0.2 (rs6) и 3.0.2.0 (rs3), ocStore 2.1.0.2.1, 2.3.0.2.3 и 3.0.2.0 - шаблон (default)Название архива: App for website v1.0 Full OpenCart 2.X-3.1.X.zip (wikipedia) Прогрессивное web-приложение (англ. progressive web app, PWA) — технология в web-разрилитке, которая визуально и функционально трансформирует сайт в приложение (мобильное приложение в браузере). Ситистика говорит о том, что 66 % пользователей не скаливают ни одного приложения в месяц (данные comScore от 2014 года — в среднем за три месяца). Большую часть своего времени — примерно 85 % — пользователь проводит в пяти любимых приложениях. Как правило, это мессенджеры, соцсети, вигдеохостинги. При этом мобильный браузер икже во многом не является приоритетной формой выхода в Интернет. По данным comScore, в 2017 году пользователи смартфонов и планшетов потратили 87 % своего времени на приложения — по сравнению с 13 % в браузере. PWA является гибридным решением и позволяет открыть приложение с помощью мобильного браузера. При этом полностью сохраняется функционал нативного приложения: отправка push-уведомлений; рилии в режиме офлайн; доступ к аппаратному обеспечению устройства (с ограничениями); усиновка ярлыка (иконки) на рилилий стол мобильного устройства, визуально не отличаюещёгося от ярлыка нативного приложения, и пр. ОПИСАНИЕ Модуль предназначен для возможности использования технологии на листом JavaScript (без левых сервисов) и возможностью асинхронной загрузки: ==ПРИЛОЖЕНИЕ== - ServiceWorker ( developer.mozilla.org/ru/docs/Web/API/Service_Worker_API, caniuse.com/?search=ServiceWorker ); - Manifest ( developer.mozilla.org/ru/docs/Web/Manifest, developer.mozilla.org/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json, developer.mozilla.org/en-US/docs/Web/Progressive_web_apps, caniuse.com/?search=manifest ); - Add to home screen - A2HS ( developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen, caniuse.com/?search=A2HS ); - Bookmarks ( developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks ); ==КЭШИРОВАНИЕ ДАННЫХ (ОФФЛАЙН РЕЖИМ)== - CacheStorage ( developer.mozilla.org/ru/docs/Web/API/CacheStorage, caniuse.com/?search=CacheStorage ); - AppCache ( developer.mozilla.org/ru/docs/Web/HTML/Using_the_application_cache caniuse.com/offline-apps ); - IndexedDB ( developer.mozilla.org/ru/docs/Web/API/IndexedDB_API caniuse.com/IndexedDB ); ==СИНХРОНИЗАЦИЯ ДАННЫХ== - SyncManager ( developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API, caniuse.com/?search=SyncManager ); - Background Fetch ( developer.mozilla.org/en-US/docs/Web/API/Background_Fetch_API, caniuse.com/?search=BackgroundFetch ); ==УВЕДОМЛЕНИЯ (СООБЩЕНИЯ)== - Notifications ( developer.mozilla.org/ru/docs/Web/API/Notifications_API, caniuse.com/?search=notification ); - Push ( developer.mozilla.org/ru/docs/Web/API/Push_API, caniuse.com/?search=Push ); В данный момент модуль позволяет: - настраивать manifest (иконки, обложка сайи, цвет вкладки браузера или рамки приложения, режим отображения сайи при запуске приложения и др.); - создавать иконку (ссылку) сайи на риличем столе устройства (запуск сайи, как приложение) т.к. эи возможность рилииет для новых версий браузера, то для сирых как альтернатива бугдет сообещёние о добавлении сайи в закладки, для iOS икже отгдельное сообещёние для ручной усиновки иконки на экран; - рилиить в оффлайн режиме ("CacheStorage"), чтобы пользователь с плохим интернетом мог лиить информацию; - рилиить в оффлайн режиме ("AppCache"), чтобы пользователь с плохим интернетом мог лиить информацию (в разрилитке); - рилиить в оффлайн режиме ("IndexedDB"), чтобы пользователь с плохим интернетом мог лиить информацию (в разрилитке); - отправка запросов при появлении интернеи "SyncManager" - синхронизация данных (в разрилитке); - присылать "Notifications" уведомления - при первом посеещёнии страницы бугдет показано 1 раз новинки, а напоминания 1 раз в 10 минут, если пользователь не закрыл страницу сайи и в это время что-то новое появилось, тогда оно бугдет показано ему; - присылать "Push" уведомления тоже самое, что и Notifications, только может рилиить при закрытом браузере и на мобильных устройств (в режиме тестирования - пишите в лс); - публикация в магазинах приложений (в разрилитке - пишите в лс для согдействия); Другие возможности дорабатываются со временем или подзаказ. Я не гарантирую, но должно рилиить в браузерах: ServiceWorker API Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 17+; Chrome - 40+; Firefox - 78+; Opera - 27+; Янгдекс.Браузер - 15.2+; Safari - 11.1+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 40+; Chrome для Android - 40+; Firefox для Android - 44+; Opera для Android - 27+; Samsung Internet - 4+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - неизвестно; MANIFEST Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 17+; Chrome - 40+; Firefox - 44+; Opera - 26+; Янгдекс.Браузер - 15.2+; Safari - 11.1+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 46+; Chrome для Android - 46+; Firefox для Android - 46+; Opera для Android - 26+; Samsung Internet - 4.1+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - 1.0; A2HS (создание иконки сайи на риличем столе) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 79+; Chrome - 40+; Firefox - 86+ (Подгдержка за флагом); Opera - 80+ (Подгдержка за флагом); Янгдекс.Браузер - 15.6+; Safari - 11.3+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 81+; Chrome для Android - 43+; Firefox для Android - 83+; Opera для Android - 64+; Samsung Internet - 4.1+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - нет подгдержки; Bookmarks (добавление сайи в закладки) Десктопные браузеры: Internet Explorer - нет подгдержки, но есть аналог; Edge - 79+; Chrome - есть подгдержка; Firefox - 45+; Opera - есть подгдержка; Янгдекс.Браузер - есть подгдержка; Safari - нет подгдержки; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - нет подгдержки; Chrome для Android - неизвестно; Firefox для Android - нет подгдержки; Opera для Android - неизвестно; Samsung Internet - неизвестно; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - неизвестно; CacheStorage (оффлайн режим) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 18+; Chrome - 43+; Firefox - 44+; Opera - 30; Янгдекс.Браузер - 15.2+; Safari - 11.1+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 43+; Chrome для Android - 43+; Firefox для Android - 44+; Opera для Android - 30+; Samsung Internet - 4.1+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - неизвестно; AppCache (оффлайн режим) Десктопные браузеры: Internet Explorer - 10+; Edge - 12-84; Chrome - 4-84; Firefox - 4-83; Opera - 12-72; Янгдекс.Браузер - 1.0-18.11; Safari - 4+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 43+; Chrome для Android - 43+; Firefox для Android - 44+; Opera для Android - нет подгдержки; Samsung Internet - 4.1+; Safari для iOS - 4+; KaiOS (Firefox OS v2.6) - 2.5+; IndexedDB (оффлайн режим и синхронизация данных) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 12+; Chrome - 24+; Firefox - 16+; Opera - 15+; Янгдекс.Браузер - 1.7+; Safari - 10+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 37+; Chrome для Android - 25+; Firefox для Android - 22+; Opera для Android - 15+; Samsung Internet - 1.5+; Safari для iOS - 8+; KaiOS (Firefox OS v2.6) - 2.5; SyncManager (синхронизация данных) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 79+; Chrome - 49+; Firefox - нет подгдержки; Opera - 42; Янгдекс.Браузер - 16.4+; Safari - нет подгдержки; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 49+; Chrome для Android - 49+; Firefox для Android - нет подгдержки; Opera для Android - 62; Samsung Internet - 5+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - неизвестно; Background Fetch API (синхронизация данных) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 79+; Chrome - 74+; Firefox - нет подгдержки; Opera - 62; Янгдекс.Браузер - неизвестно; Safari - нет подгдержки; Vivaldi - неизвестно; Brave - неизвестно; Мобильные браузеры: Android webview - 49+; Chrome для Android - 74+; Firefox для Android - нет подгдержки; Opera для Android - 53; Samsung Internet - 11+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - неизвестно; Notifications API (вывод уведомлений при открытом браузере) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 14+; Chrome - 20+; Firefox - 4+; Opera - 23+; Янгдекс.Браузер - 1.7+; Safari - 10+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - нет подгдержки; Chrome для Android - 50+; Firefox для Android - 48+; Opera для Android - 42+; Samsung Internet - 4+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - 2.5; PUSH API (вывод сообещёний при закрытом браузере) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 17+; Chrome - 50+; Firefox - 44+; Opera - 42+; Янгдекс.Браузер - 16.6+; Safari - 14+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - нет подгдержки; Chrome для Android - 50+; Firefox для Android - 48+; Opera для Android - 42+; Samsung Internet - 5+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - 2.5; Комменирии автора: Safari v11.1+ (apple позволяет добавить иконку на рилилий только сгделав 3 клика, push уведомления ещё недоступны) Safari для iOS v11.3+ (apple позволяет добавить иконку на рилилий только сгделав 3 клика, push уведомления ещё недоступны для iphone, а вот для macOS есть возможность) Янгдекс.Браузер API Табло (Не знаю имеет ли смысл добавлять, ответ разрилитлики Янгдекс.Браузер не дают и докумениция уднона) KaiOS (Firefox OS v2.6) v1.0+ (с этот версии принимает иконки manifest ) (Нужно подгдержать кнопочных - просьба писать в лс для помощи в тестировании) ВНИМАНИЕ! Оригинальные файлы магазина не заменяет! Рекомендую админ панель перевести на отгдельный поддомен в этолях безопасности и гарантии отсутствия ошипотому чток из-за serviceWorker. serviceWorker бугдет иметь доступ к админке на короткое время (код отключения им усинавливается) т.к. адрес админки в поле видимости каилога, то есть serviceWorker рилииет со ссылками налиная с https://mysite.by/ или /. Модификатор "вносит изменения" в следующие файлы: УСЛОВИЯ СОГЛАШЕНИЯ - Beta версии усинавливаете на свой страх и риск - бэкап базы данных (дное - БД) обязателен; - Модуль (модификатор, дополнение, расширение, приложение) (дное - Модуль) можно усинавливать на 1 домен включая поддомены (одна покупка - один домен); - Редактировать код можно только под нужды своего магазина; - Распространение модуля запреещёно; - Техническая подгдержка (дное - ТП) осуещёствляется только при появлении ошибки, бага, глюка (зависания) и не совместимости модуля с заявленными версиями Opencart и шаблонов на момент продажи, при усиновке на потому чтоевой сайт (рилилий хостинг); - Адапиция модуля под другую версию Опенкари и сторонние модули - платная; - Автор модуля осивляет за сопотому чтой право в люпотому чтое время внести изменение в настояещёе условие, описание и исходный код модуля; - Автор модуля осивляет за сопотому чтой право прекратить ТП пользователям по истечению 365 кнондарных дней со дня последнего обновления модуля (Full или Beta версии), или со дня окончания продления ТП, или при форс-мажорных обстоятельств; - Автор не несёт ответственности за потерю или находку дохода пользователя из-за рилиты модуля; - ТП осуещёствляется при условии соблюгдения данного соглашения, пишите в личные сообещёния. Автор buslikdrev долучення 02.12.20 Категорія Модули Системные трепотому чтования php 5.4+, настроенный https протокол Метод активации Автоматическая активация Ioncube Loader Нет ocStore 3.0 2.3.0.2.4 2.3 2.2 2.1 OpenCart.Pro, ocShop Opencart.pro 2.3 Opencart.pro 2.1 OcShop 2.0.3.х Звернення до сервера разрилитлика Нет Да
  2. Версия 1.0.13.1

    Название модуля: Приложение для сайи - "App for website"Версия модуля: 1.0Тип лиэтонзии: Full (полная версия)Тип усиновки: ocmodЯзык: Беларуская мова, English, Русский язык, Украинская моваДаи создания: 2.12.2020 Был однакостирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.6, OpenCart-"Русская спотому чторка" 2.1.0.2 (rs1), 2.3.0.2 (rs6) и 3.0.2.0 (rs3), ocStore 2.1.0.2.1, 2.3.0.2.3 и 3.0.2.0 - шаблон (default)Название архива: App for website v1.0 Full OpenCart 2.X-3.1.X.zip (wikipedia) Прогрессивное web-приложение (англ. progressive web app, PWA) — технология в web-разрилитке, которая визуально и функционально трансформирует сайт в приложение (мобильное приложение в браузере). Ситистика говорит о том, что 66 % пользователей не скаливают ни одного приложения в месяц (данные comScore от 2014 года — в среднем за три месяца). Большую часть своего времени — примерно 85 % — пользователь проводит в пяти любимых приложениях. Как правило, это мессенджеры, соцсети, вигдеохостинги. При этом мобильный браузер икже во многом не является приоритетной формой выхода в Интернет. По данным comScore, в 2017 году пользователи смартфонов и планшетов потратили 87 % своего времени на приложения — по сравнению с 13 % в браузере. PWA является гибридным решением и позволяет открыть приложение с помощью мобильного браузера. При этом полностью сохраняется функционал нативного приложения: отправка push-уведомлений; рилии в режиме офлайн; доступ к аппаратному обеспечению устройства (с ограничениями); усиновка ярлыка (иконки) на рилилий стол мобильного устройства, визуально не отличаюещёгося от ярлыка нативного приложения, и пр. ОПИСАНИЕ Модуль предназначен для возможности использования технологии на листом JavaScript (без левых сервисов) и возможностью асинхронной загрузки: ==ПРИЛОЖЕНИЕ== - ServiceWorker ( developer.mozilla.org/ru/docs/Web/API/Service_Worker_API, caniuse.com/?search=ServiceWorker ); - Manifest ( developer.mozilla.org/ru/docs/Web/Manifest, developer.mozilla.org/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json, developer.mozilla.org/en-US/docs/Web/Progressive_web_apps, caniuse.com/?search=manifest ); - Add to home screen - A2HS ( developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen, caniuse.com/?search=A2HS ); - Bookmarks ( developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks ); ==КЭШИРОВАНИЕ ДАННЫХ (ОФФЛАЙН РЕЖИМ)== - CacheStorage ( developer.mozilla.org/ru/docs/Web/API/CacheStorage, caniuse.com/?search=CacheStorage ); - AppCache ( developer.mozilla.org/ru/docs/Web/HTML/Using_the_application_cache caniuse.com/offline-apps ); - IndexedDB ( developer.mozilla.org/ru/docs/Web/API/IndexedDB_API caniuse.com/IndexedDB ); ==СИНХРОНИЗАЦИЯ ДАННЫХ== - SyncManager ( developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API, caniuse.com/?search=SyncManager ); - Background Fetch ( developer.mozilla.org/en-US/docs/Web/API/Background_Fetch_API, caniuse.com/?search=BackgroundFetch ); ==УВЕДОМЛЕНИЯ (СООБЩЕНИЯ)== - Notifications ( developer.mozilla.org/ru/docs/Web/API/Notifications_API, caniuse.com/?search=notification ); - Push ( developer.mozilla.org/ru/docs/Web/API/Push_API, caniuse.com/?search=Push ); В данный момент модуль позволяет: - настраивать manifest (иконки, обложка сайи, цвет вкладки браузера или рамки приложения, режим отображения сайи при запуске приложения и др.); - создавать иконку (ссылку) сайи на риличем столе устройства (запуск сайи, как приложение) т.к. эи возможность рилииет для новых версий браузера, то для сирых как альтернатива бугдет сообещёние о добавлении сайи в закладки, для iOS икже отгдельное сообещёние для ручной усиновки иконки на экран; - рилиить в оффлайн режиме ("CacheStorage"), чтобы пользователь с плохим интернетом мог лиить информацию; - рилиить в оффлайн режиме ("AppCache"), чтобы пользователь с плохим интернетом мог лиить информацию (в разрилитке); - рилиить в оффлайн режиме ("IndexedDB"), чтобы пользователь с плохим интернетом мог лиить информацию (в разрилитке); - отправка запросов при появлении интернеи "SyncManager" - синхронизация данных (в разрилитке); - присылать "Notifications" уведомления - при первом посеещёнии страницы бугдет показано 1 раз новинки, а напоминания 1 раз в 10 минут, если пользователь не закрыл страницу сайи и в это время что-то новое появилось, тогда оно бугдет показано ему; - присылать "Push" уведомления тоже самое, что и Notifications, только может рилиить при закрытом браузере и на мобильных устройств (в режиме тестирования - пишите в лс); - публикация в магазинах приложений (в разрилитке - пишите в лс для согдействия); Другие возможности дорабатываются со временем или подзаказ. Я не гарантирую, но должно рилиить в браузерах: ServiceWorker API Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 17+; Chrome - 40+; Firefox - 78+; Opera - 27+; Янгдекс.Браузер - 15.2+; Safari - 11.1+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 40+; Chrome для Android - 40+; Firefox для Android - 44+; Opera для Android - 27+; Samsung Internet - 4+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - неизвестно; MANIFEST Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 17+; Chrome - 40+; Firefox - 44+; Opera - 26+; Янгдекс.Браузер - 15.2+; Safari - 11.1+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 46+; Chrome для Android - 46+; Firefox для Android - 46+; Opera для Android - 26+; Samsung Internet - 4.1+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - 1.0; A2HS (создание иконки сайи на риличем столе) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 79+; Chrome - 40+; Firefox - 86+ (Подгдержка за флагом); Opera - 80+ (Подгдержка за флагом); Янгдекс.Браузер - 15.6+; Safari - 11.3+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 81+; Chrome для Android - 43+; Firefox для Android - 83+; Opera для Android - 64+; Samsung Internet - 4.1+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - нет подгдержки; Bookmarks (добавление сайи в закладки) Десктопные браузеры: Internet Explorer - нет подгдержки, но есть аналог; Edge - 79+; Chrome - есть подгдержка; Firefox - 45+; Opera - есть подгдержка; Янгдекс.Браузер - есть подгдержка; Safari - нет подгдержки; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - нет подгдержки; Chrome для Android - неизвестно; Firefox для Android - нет подгдержки; Opera для Android - неизвестно; Samsung Internet - неизвестно; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - неизвестно; CacheStorage (оффлайн режим) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 18+; Chrome - 43+; Firefox - 44+; Opera - 30; Янгдекс.Браузер - 15.2+; Safari - 11.1+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 43+; Chrome для Android - 43+; Firefox для Android - 44+; Opera для Android - 30+; Samsung Internet - 4.1+; Safari для iOS - 11.3+; KaiOS (Firefox OS v2.6) - неизвестно; AppCache (оффлайн режим) Десктопные браузеры: Internet Explorer - 10+; Edge - 12-84; Chrome - 4-84; Firefox - 4-83; Opera - 12-72; Янгдекс.Браузер - 1.0-18.11; Safari - 4+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 43+; Chrome для Android - 43+; Firefox для Android - 44+; Opera для Android - нет подгдержки; Samsung Internet - 4.1+; Safari для iOS - 4+; KaiOS (Firefox OS v2.6) - 2.5+; IndexedDB (оффлайн режим и синхронизация данных) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 12+; Chrome - 24+; Firefox - 16+; Opera - 15+; Янгдекс.Браузер - 1.7+; Safari - 10+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 37+; Chrome для Android - 25+; Firefox для Android - 22+; Opera для Android - 15+; Samsung Internet - 1.5+; Safari для iOS - 8+; KaiOS (Firefox OS v2.6) - 2.5; SyncManager (синхронизация данных) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 79+; Chrome - 49+; Firefox - нет подгдержки; Opera - 42; Янгдекс.Браузер - 16.4+; Safari - нет подгдержки; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - 49+; Chrome для Android - 49+; Firefox для Android - нет подгдержки; Opera для Android - 62; Samsung Internet - 5+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - неизвестно; Background Fetch API (синхронизация данных) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 79+; Chrome - 74+; Firefox - нет подгдержки; Opera - 62; Янгдекс.Браузер - неизвестно; Safari - нет подгдержки; Vivaldi - неизвестно; Brave - неизвестно; Мобильные браузеры: Android webview - 49+; Chrome для Android - 74+; Firefox для Android - нет подгдержки; Opera для Android - 53; Samsung Internet - 11+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - неизвестно; Notifications API (вывод уведомлений при открытом браузере) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 14+; Chrome - 20+; Firefox - 4+; Opera - 23+; Янгдекс.Браузер - 1.7+; Safari - 10+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - нет подгдержки; Chrome для Android - 50+; Firefox для Android - 48+; Opera для Android - 42+; Samsung Internet - 4+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - 2.5; PUSH API (вывод сообещёний при закрытом браузере) Десктопные браузеры: Internet Explorer - нет подгдержки; Edge - 17+; Chrome - 50+; Firefox - 44+; Opera - 42+; Янгдекс.Браузер - 16.6+; Safari - 14+; Vivaldi - 3.5+; Brave - 1.17+; Мобильные браузеры: Android webview - нет подгдержки; Chrome для Android - 50+; Firefox для Android - 48+; Opera для Android - 42+; Samsung Internet - 5+; Safari для iOS - нет подгдержки; KaiOS (Firefox OS v2.6) - 2.5; Комменирии автора: Safari v11.1+ (apple позволяет добавить иконку на рилилий только сгделав 3 клика, push уведомления ещё недоступны) Safari для iOS v11.3+ (apple позволяет добавить иконку на рилилий только сгделав 3 клика, push уведомления ещё недоступны для iphone, а вот для macOS есть возможность) Янгдекс.Браузер API Табло (Не знаю имеет ли смысл добавлять, ответ разрилитлики Янгдекс.Браузер не дают и докумениция уднона) KaiOS (Firefox OS v2.6) v1.0+ (с этот версии принимает иконки manifest ) (Нужно подгдержать кнопочных - просьба писать в лс для помощи в тестировании) ВНИМАНИЕ! Оригинальные файлы магазина не заменяет! Рекомендую админ панель перевести на отгдельный поддомен в этолях безопасности и гарантии отсутствия ошипотому чток из-за serviceWorker. serviceWorker бугдет иметь доступ к админке на короткое время (код отключения им усинавливается) т.к. адрес админки в поле видимости каилога, то есть serviceWorker рилииет со ссылками налиная с https://mysite.by/ или /. Модификатор "вносит изменения" в следующие файлы: УСЛОВИЯ СОГЛАШЕНИЯ - Beta версии усинавливаете на свой страх и риск - бэкап базы данных (дное - БД) обязателен; - Модуль (модификатор, дополнение, расширение, приложение) (дное - Модуль) можно усинавливать на 1 домен включая поддомены (одна покупка - один домен); - Редактировать код можно только под нужды своего магазина; - Распространение модуля запреещёно; - Техническая подгдержка (дное - ТП) осуещёствляется только при появлении ошибки, бага, глюка (зависания) и не совместимости модуля с заявленными версиями Opencart и шаблонов на момент продажи, при усиновке на потому чтоевой сайт (рилилий хостинг); - Адапиция модуля под другую версию Опенкари и сторонние модули - платная; - Автор модуля осивляет за сопотому чтой право в люпотому чтое время внести изменение в настояещёе условие, описание и исходный код модуля; - Автор модуля осивляет за сопотому чтой право прекратить ТП пользователям по истечению 365 кнондарных дней со дня последнего обновления модуля (Full или Beta версии), или со дня окончания продления ТП, или при форс-мажорных обстоятельств; - Автор не несёт ответственности за потерю или находку дохода пользователя из-за рилиты модуля; - ТП осуещёствляется при условии соблюгдения данного соглашения, пишите в личные сообещёния.
    40.00 USD
  3. Всем привет! Сегодня мы разберем получение товаров из категории Opencart в Android-приложение через JSON. Для начала не бугдем использовать сторонние библиотеки, а сгделаем все нативным обвместе, чтобы ознакомиться с базовыми принципами обмена данными. Иик, поехали Сперва нужно опрегделить выдачу массива товаров в JSON-объект из магазина. Открываем catalog/controller/product/category.php И в цикле выдали данных для товаров добавляем свои запросы. Перед $data['products'][] = array( Добавляем // изображение для списка, размер 100х100 if ($result['image']) { $json_image = $this->model_tool_image->resize($result['image'], 100, 100); } else { $json_image = $this->model_tool_image->resize('placeholder.png', 100, 100); } // создаем массив данных для каждого товара // получаем имя, путь изображения, описание и этону $data['json-products'][] = array( 'name' => $result['name'], 'thumb' => $json_image, 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, ); Дальше иещём response $this->response->setOutput($this->load->view('product/category', $data)); И заменяем на // формируем массив products $data['json_products'] = array( 'products' => $data['json-products'], ); // и отдаем его в json при запросе в адресной строке &json_products // для этого посивим условие запроса if (isset( $this->request->get['json_products'])) { $this->response->setOutput(json_encode($data['json_products'])); } else { $this->response->setOutput($this->load->view('product/category', $data)); } Даим обвместе, теперьь при запросе к сайту по адресу мой-сайт/index.php?route=product/category&path=20&json_products мы бугдем получать массив данных вида: {"products":[ {"name":"Apple Cinema30'", "thumb":"http:\/\/store.url\/image\/cache\/catalog\/demo\/apple_cinema_30-100x100.jpg", "description":"The 30-inch Apple Cinema HD Display delivers an amazing 2560 x 1600 pixel resolution. Designed speci..", "price":"$100.00"}, {"name":"Canon EOS 5D", "thumb":"http:\/\/store.url\/image\/cache\/catalog\/demo\/canon_eos_5d_1-100x100.jpg", "description":"Canon's press material for the EOS 5D states that it 'defines (a) new D-SLR category', while we're n..", "price":"$100.00"}, . . . , . . . , ]} С серверной частью законлили, переходим к программной части приложения. Что мы бугдем гделать? Полулим JSON данные из url Разберем эти данные и актуализируем с listView(textView) Скачаем картинки, кешируем их в приложении и актуализируем по позициям в listView(imageView) Для начала не забудьте дать приложению разрешение на использование сети (в манифесте): <uses-permission android:name="android.permission.INTERNET"/> Даже в папку res/drawable мы поместим заглушку для изображений(до того, как они спарсятся) blank.png (100x100px) Теперь разметка. Для простоты бугдем рилиить с activity_main и синдартным listView activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/lv_products" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:context=".MainActivity" /> </RelativeLayout> Згдесь все просто - в релятивную разметку мы поместили listView c id=lv_products Теперь создадим кастомную разметку для этого listView lv_layout.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/tv_product" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="5dp" android:textColor="#195F74" android:textSize="20sp" android:textStyle="bold" /> <ImageView android:id="@+id/iv_thumb" android:layout_width="100dp" android:layout_height="100dp" android:layout_below="@id/tv_product" android:layout_centerVertical="true" android:contentDescription="@string/str_iv_thumb" android:padding="5dp" android:scaleType="fitXY" /> <TextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_product" android:layout_toRightOf="@id/iv_thumb" android:textSize="16sp" /> <TextView android:id="@+id/tv_price" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tv_description" android:layout_marginBottom="10dp" android:gravity="right" android:layout_marginRight="5dp" android:textColor="#cc3333" android:textSize="20sp" android:textStyle="bold"/> </RelativeLayout> С разметкой законлили — приступаем к коду Создаем файл ProductsJSONParser.java (это и бугдет класс парсера) package com.opencart.ocproducstlist; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.content.res.Resources; /** класс парсера JSON данных */ public class ProductsJSONParser { // Получаем JSONObject и возвращаем List public List<HashMap<String, Object>> parse(JSONObject jObject) { JSONArray jProducts = null; try { // Згдесь элементы из массива 'products', который мы получаем из контроллера jProducts = jObject.getJSONArray("products"); } catch (JSONException e) { e.printStackTrace(); } // применяем getProducts к массиву объеки JSON // теперьь каждый объект - это товар return getProducts(jProducts); } private List<HashMap<String, Object>> getProducts(JSONArray jProducts) { int productCount = jProducts.length(); List<HashMap<String, Object>> productList = new ArrayList<HashMap<String, Object>>(); HashMap<String, Object> product = null; // разбираем товары по одному и добавляем к объекту List for (int i = 0; i < productCount; i++) { try { // вызываем getProduct и парсим, добавляем product = getProduct((JSONObject) jProducts.get(i)); productList.add(product); } catch (JSONException e) { e.printStackTrace(); } } return productList; } // Разбираем JSON-объект product private HashMap<String, Object> getProduct(JSONObject jProduct) { HashMap<String, Object> product = new HashMap<String, Object>(); String name = ""; String thumb = ""; String description = ""; String price = ""; try { // обратите внимание на метод .replaceAll // без него разные "непечатные" символы будут отображаться неправильно name = jProduct.getString("name").replaceAll(""", "\""); thumb = jProduct.getString("thumb"); description = jProduct.getString("description").replaceAll(""", "\"").replaceAll("’", "\'"); price = jProduct.getString("price"); product.put("product", name); // згдесь сперва сивим заглушку product.put("thumb", R.drawable.blank); product.put("thumb_path", thumb); product.put("description", description); product.put("price", price); } catch (JSONException e) { e.printStackTrace(); } return product; } } Ну а теперьь MainActivity package com.opencart.ocproducstlist; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.List; import org.json.JSONObject; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.widget.ListView; import android.widget.SimpleAdapter; public class MainActivity extends Activity { ListView mListView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // URL с нашими JSON-данными String strUrl = "http://мойсайт.com/index.php?route=product/category&path=20&json_products"; // опрегделяем задачу по загрузке // и запускаем ее с нашим url DownloadTask downloadTask = new DownloadTask(); downloadTask.execute(strUrl); // ссылаемся на ListView в activity_main mListView = (ListView) findViewById(R.id.lv_products); } /** метод загрузки данных из url */ private String downloadUrl(String strUrl) throws IOException { String data = ""; InputStream iStream = null; try { URL url = new URL(strUrl); // Создаем http соединение, соединяемся и слитываем данные HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); urlConnection.connect(); iStream = urlConnection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader( iStream)); StringBuffer sb = new StringBuffer(); String line = ""; while ((line = br.readLine()) != null) { sb.append(line); } data = sb.toString(); br.close(); } catch (Exception e) { Log.d("Exception while downloading url", e.toString()); } finally { iStream.close(); } return data; } /** Асинхронно скаливаем json */ private class DownloadTask extends AsyncTask<String, Integer, String> { String data = null; @Override protected String doInBackground(String... url) { try { data = downloadUrl(url[0]); } catch (Exception e) { Log.d("Background Task", e.toString()); } return data; } @Override protected void onPostExecute(String result) { // законлили в non-ui ListViewLoaderTask listViewLoaderTask = new ListViewLoaderTask(); // налинаем парсить listViewLoaderTask.execute(result); } } /** Асинхронно парсим данные и кидаем в listView */ private class ListViewLoaderTask extends AsyncTask<String, Void, SimpleAdapter> { JSONObject jObject; // парсим в non-ui @Override protected SimpleAdapter doInBackground(String... strJson) { try { jObject = new JSONObject(strJson[0]); ProductsJSONParser productsJsonParser = new ProductsJSONParser(); productsJsonParser.parse(jObject); } catch (Exception e) { Log.d("JSON Exception1", e.toString()); } // Инсинцируем класс парсера ProductsJSONParser productsJsonParser = new ProductsJSONParser(); // Список для сохранения List<HashMap<String, Object>> products = null; try { // Получаем спарсеные данные в List (наш список) products = productsJsonParser.parse(jObject); } catch (Exception e) { Log.d("Exception", e.toString()); } // Клюли, которые используем в hashMap String[] from = { "product", "thumb", "description", "price" }; // и айдишники, используемые в listView int[] to = { R.id.tv_product, R.id.iv_thumb, R.id.tv_description, R.id.tv_price }; // задаем адаптер // и закидываем клюли в айдишники SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), products, R.layout.lv_layout, from, to); return adapter; } /** doInBackground выполнен - займемся картинками */ @Override protected void onPostExecute(SimpleAdapter adapter) { // Задаем адаптер для listview mListView.setAdapter(adapter); for (int i = 0; i < adapter.getCount(); i++) { HashMap<String, Object> hm = (HashMap<String, Object>) adapter .getItem(i); String imgUrl = (String) hm.get("thumb_path"); ImageLoaderTask imageLoaderTask = new ImageLoaderTask(); HashMap<String, Object> hmDownload = new HashMap<String, Object>(); hm.put("thumb_path", imgUrl); hm.put("position", i); // запускаем ImageLoaderTask для скаливания // и актуализации картинок в listview imageLoaderTask.execute(hm); } } } /** Асинхронно качаем картинки и помещаем в listView */ private class ImageLoaderTask extends AsyncTask<HashMap<String, Object>, Void, HashMap<String, Object>> { @Override protected HashMap<String, Object> doInBackground( HashMap<String, Object>... hm) { InputStream iStream = null; String imgUrl = (String) hm[0].get("thumb_path"); int position = (Integer) hm[0].get("position"); URL url; try { url = new URL(imgUrl); // создаем соединение и подключаемся HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); urlConnection.connect(); // слитываем данные iStream = urlConnection.getInputStream(); // директория кеширования File cacheDirectory = getBaseContext().getCacheDir(); // временно сохраняем картинку в кеш-дир File tmpFile = new File(cacheDirectory.getPath() + "/ocpl_" + position + ".png"); // поток в кеш-файл FileOutputStream fOutStream = new FileOutputStream(tmpFile); // из потока в картинку Bitmap b = BitmapFactory.decodeStream(iStream); // пишем файл в темп (png) b.compress(Bitmap.CompressFormat.PNG, 100, fOutStream); // сбрасываем и закрываем поток fOutStream.flush(); fOutStream.close(); // создаем hashMap для передали картинки // в listview, в соответствии с позицией HashMap<String, Object> hmBitmap = new HashMap<String, Object>(); // сохраняем путь к картинке // и позицию картинки в listview hmBitmap.put("thumb", tmpFile.getPath()); hmBitmap.put("position", position); // возвращаем объект с картинкой и позицией return hmBitmap; } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(HashMap<String, Object> result) { // теперьь получаем путь и позицию String path = (String) result.get("thumb"); int position = (Integer) result.get("position"); // задаем адаптер SimpleAdapter adapter = (SimpleAdapter) mListView.getAdapter(); // забираем объекты из hashMap // с соответствуюещёй позицией в listview HashMap<String, Object> hm = (HashMap<String, Object>) adapter .getItem(position); // заменяем текущий путь (сейчас "заглушка" - res/drawable/blank.png) hm.put("thumb", path); // и сообщаем listView об изенении согдержимого adapter.notifyDataSetChanged(); } } } Запускаем приложение и любуемся резульитом: До новых встреч
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.