Меню
RSS
Cordova: идентификатор браузера и скрытие контента
 
Михаил, подскажите.
Возможно ли задать каким то образом что сайт открыт именно в приложении (созданном)
и тк открыт в приложении, то скрыть элементы (заблокировать), такие как верхнее меню, футер сайта, боковое меню, и виджет онлайн чата.
Для чего это нужно: чтобы было не как сайт открытый в отдельно окне, а именно как отдельное приложение.
Все скрытые данные (меню и чат) понятно как вывести в отдельные кнопки/меню кордовы.
но вот не пойму как сделать идентификацию приложения и скрыть по нему данные
 
Цитата
Владимир написал:
Михаил, подскажите.
Возможно ли задать каким то образом что сайт открыт именно в приложении (созданном)
и тк открыт в приложении, то скрыть элементы (заблокировать), такие как верхнее меню, футер сайта, боковое меню, и виджет онлайн чата.
Для чего это нужно: чтобы было не как сайт открытый в отдельно окне, а именно как отдельное приложение.
Все скрытые данные (меню и чат) понятно как вывести в отдельные кнопки/меню кордовы.
но вот не пойму как сделать идентификацию приложения и скрыть по нему данные
что именно думаю сделать.
Установить User Agent - "mobileapp"
далее какой то код, которые если видит mobileapp то скрывает футер и другие элементы страницы которые не нужны в приложении.
только не пойму как это реализовать....
Изменено: Михаил Базаров - 07.07.2024 12:10:57
 
Можно попробовать передать из кордовы на сайт внутренний адрес приложения и
Код
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'ID приложения') {
   // Что-то делаем
}

А вообще, в приложении есть js событие onDeviceReady
Изменено: Михаил Базаров - 07.07.2024 17:11:49
 
Цитата
написал:
Можно попробовать передать из кордовы на сайт внутренний адрес приложения и
Код
 if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'ID приложения') {
   // Что-то делаем
} 

А вообще, в приложении есть js событие onDeviceReady
вот я не пойму как подключить JS без файла index.html

попробовал через hooks запустить скрипт (как понимаю он должен же работать пока открыто приложение... но ничего не происходит...
а как передать из приложения и выполнить скрипт на самом сайте, я без понятия, вообще js не мое)
Код
document.addEventListener("DOMContentLoaded", function() {
  var element = document.querySelector(".history-section.static-content");
  if (element) {
    element.style.display = "none";
  }
});
Изменено: Михаил Базаров - 07.07.2024 17:12:03
 
Нужно пробросить API кордовы внутрь сайта, тогда заработают все плагины и само событие onDeviceReady.
Для этого нужно поставить плагин remote injection
Подробнее тут
https://bazarow.ru/blog-note/16715/
Там, в комменте приложил ссылку на скачивание актуального плагина.
Изменено: Михаил Базаров - 07.07.2024 17:12:31
 
Цитата
написал:
Нужно пробросить API кордовы внутрь сайта, тогда заработают все плагины и само событие onDeviceReady.
Для этого нужно поставить плагин remote injection
Подробнее тут
https://bazarow.ru/blog-note/16715/
Там, в комменте приложил ссылку на скачивание актуального плагина.
не пойму, это просто в php вписывается или это js
Код
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
    ref = cordova.InAppBrowser.open(
        'https://ВАШ_САЙТ_ПРИЛОЖЕНИЕ.ru/',
        '_self',
        'location=no, zoom=no, toolbar=no'
    );
}
Изменено: Михаил Базаров - 08.07.2024 12:06:04
 
Могли бы как то подробнее написать, я уже неделю пытаюсь как это сделать и не нахожу в инете информации...
 
Да это js
Пример:
Код
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
   $('body').addClass('my_custom_class');
}

Только в приложении для body добавиться класс "my_custom_class" и уже им можно кастомизировать что угодно.
Не обязательно для body добавлять, можно добавить модификаторы к нужным блокам
 
Все, я окончательно запутался.
Сперва говорили об одном, потом о другом...

Подытог:
Нужно в cordova добавить скрипт:
Код
document.addEventListener('deviceready', onDeviceReady, false);function onDeviceReady() {
    ref = cordova.InAppBrowser.open(
        'https://ВАШ_САЙТ_ПРИЛОЖЕНИЕ.ru/',
        '_self',
        'location=no, zoom=no, toolbar=no'
    );
}
document.addEventListener("DOMContentLoaded", function() {
  var element = document.querySelector(".history-section.static-content");
  if (element) {
    element.style.display = "none";
  }
});


И в этом случае блок с классом .history-section.static-content будет скрыт?

Во всех уроках и вообще везде рассматривается вариант подключения при использовании index.htm (те локальных данных), и нигде нет работы с внешними сайтами

Или я опять не так все понял?

Изменено: Михаил Базаров - 08.07.2024 17:01:46
 
Видимо вы как-то не все серии посмотрели.
Вот тут, под конец я показываю как открыть сторонний сайт в приложении
https://bazarow.ru/video/app_cordova/prilozhenie-v-googleplay/
И дальше работаю в таком режиме до конца видео.
 
Цитата
написал:
Видимо вы как-то не все серии посмотрели.
Вот тут, под конец я показываю как открыть сторонний сайт в приложении
https://bazarow.ru/video/app_cordova/prilozhenie-v-googleplay/
И дальше работаю в таком режиме до конца видео.

я все эти видео смотрел.
Но опять же, не понимаю что не так.
Вам легко и просто конечно написать- сделайте так  а может так...
Вопрос в 2-х строчках кода, для скрытия гребанной секции на сайте.
Поверьте, если бы я нашел информацию в интернете как это сделать, то сделал бы это не спрашивая у Вас.
Но из тог что Вы показывали в уроках (урок с совмещением онлайн и офлайн), мне не нужно.
По сути мне нужно чтобы просто открылся сайт и у него была убрана ненужная секция.
И по тому что вы писали уже все перепробовал...
Конечно хорошо быть крутым программистом, но 2 строчки кода можно было бы подсказать, для Вас это 2 секунды, а я уже 3 или 4 дня е;;;сь с этим г;;м
Изменено: Михаил Базаров - 08.07.2024 20:14:51
 
Эти строчки вставте прямо на сайте, который открываете в приложении.
Прям, в его код
Код
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
   $('.static-content').addClass('hidden');
}

Обязательно поставте плагин remote injection - без него не сработает.
Уж не знаю, как еще подробнее описать.  :)
Изменено: Михаил Базаров - 09.07.2024 13:03:04
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Блог-note: заметки разработчика

Как вывести свойства инфоблока по отдельности и немного плюшек не в тему

Если у инфоблока несколько свойств- то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе...

Индивидуальные цены в 1С-Битрикс: в каталоге и при оформлении заказа

В этой заметке постараюсь описать процесс реализации индивидуальных цен, для пользователей. При этом, индивидуальные цен...

Автоматически отгрузить заказ и сменить статус отгрузки, при выполнении заказа.

Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузками и обменивается только стату...

Вывести все товары, с постраничной навигацией, из всех разделов инфоблока

По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары вс...

Вывести общее количество товаров в шаблоне корзины 1С-Битрикс

Задача: вывести общее количество товаров в корзине (именно количество единиц товара, а не позиций). При этом да...

Список новостей с автопрокруткой через overflow:scroll

Простенький javascript позволит сделать автопрокрутку в шаблоне списка новостей. Достаточно актуально для новостных сайт...

Пошагово получить информацию о заказах и сохранить как Excel (xls)

Задача: Нужно получить информацию о заказах с возможностью указания даты создания "от"" и "до" ...

Отсортировать предложения по цене в каталоге 1С-Битрикс

Задача: в 1С-Битрикс есть настройка для вывода предложений по стоимости, но она не функционирует должным образом. Необхо...

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...