Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Получение доступа к железу устройства из Битрикс мобильное приложение

Просмотров: 6321

Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функционал добавляемый BXMobileApp. Хотя, там вскользь и упомянута работа с железном устройства. Явно не хватает примеров реализации данной возможности. Восполняю сей пробел.

На самом деле, это Cordova(PhoneGap).

На самом деле, под капотом Битрикс: мобильное приложение обычный PhoneGap, хотя и немного на стероидах. Реализующий некоторые не стандартные для PhoneGap фичи (модуль CMobile)

Соответсвенно, можно абсолютно спокойно пользоваться документацией к Cordova - все базовые возможности работают штатно. Дальше просто примеры. С более тонкими моментами, думаю разберетесь.

Доступ к камере и медиабиблиотеке устройства.

Плагин умеет брать и загружать фотографии с устройства. Как из медиа библиотеки, так и напрямую с камеры.

Скрипт обработчик

    var pictureSource;
        var destinationType;
        document.addEventListener("deviceready",onDeviceReady,false);
        function onDeviceReady() {
            pictureSource=navigator.camera.PictureSourceType;
            destinationType=navigator.camera.DestinationType;
        }
        function onPhotoDataSuccess(imageData) {
            var smallImage = document.getElementById('smallImage');
            smallImage.style.display = 'block';
            smallImage.src = "data:image/jpeg;base64," + imageData;
        }
        function onPhotoURISuccess(imageURI) {
            var largeImage = document.getElementById('largeImage');
            largeImage.style.display = 'block';
            largeImage.src = imageURI;
        }
        function capturePhoto() {
            navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
                destinationType: destinationType.DATA_URL });
        }   
        function getPhoto(source) {
            navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
                destinationType: destinationType.FILE_URI,
                sourceType: source });
        }
        function onFail(message) {
            alert('Failed because: ' + message);
        }

Кнопки вызова

    <button onclick="capturePhoto();">Сфотографировать</button> <br>
    <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">Загрузить из биботеки</button><br>
    <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">Загрузить из альбома</button><br>
    <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
    <img style="display:none;" id="largeImage" src="" />

Получить данные геолокации с GPS модуля

Выведет на экран полные данные о местоположении пользователя. При чем, это не определение по IP или сотовым вышкам. Это именно данные с GPS модуля

Скрипт обработчик

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br>' +
        'Longitude: ' + position.coords.longitude + '<br>' + '<br>' +
        'Altitude: ' + position.coords.altitude + '<br>' + '<br>' +
        'Accuracy: ' + position.coords.accuracy + '<br>' + '<br>' +
        'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br>' +
        'Heading: ' + position.coords.heading + '<br>' +
        'Speed: ' + position.coords.speed + '<br>' + '<br>' +
        'Timestamp: ' + position.timestamp + '<br>';
   }
   function onError(error) {
        alert(error.code + ' ' + error.message);
    }

Вывод информации

<p id="geolocation">Получение данных с GPS...</p>

Информация об устройстве

Можно получить всю информацию об устройстве. Модель, уникальный индетификатор, операционную систему и.т.д.

document.addEventListener("deviceready", onDeviceReady, false);
        function onDeviceReady() {
            var element = document.getElementById('device');
        element.innerHTML = 'Операционная система' + device.platform + '<br>'
        'Модель телефона' + device.model + '<br>'
'UUID телефона' + device.uuid + '<br>';
}

Вывод

<p id="device">Получение данных об устройстве...</p>

В общем-то, возможностей достаточно много. От получения и создания контактов в телефонной книге, до загрузки и сохранения файлов с/на устройство.

У меня, Вы можете заказать разработку и публикацию мобильного приложения для магазина, портала, информационного ресурса.

Дмитрий Кривой 03.12.2020
Прошу прощения, Михаил. На основе одной статей на тему разработки мобильного приложения Битрикс (и с учётом этой) хотелось бы уточнить - действительно ли функциональность уже встроенных библиотек никак не расширить?
Например, для расширения функциональности Cordova используются плагины, которые можно, конечно же, установить. Но а у Битрикса что, совсем никак?
Допустим, есть плагин, который позволяет включить/отключить вспышку на телефоне. И, получается, в рамках Битрикса я могу попрощаться с этой нужной для некоторых случаев функцией?
Буду очень благодарен за ответ.
Михаил Базаров 04.12.2020
Цитата
Дмитрий Кривой написал:
Прошу прощения, Михаил. На основе одной статей на тему разработки мобильного приложения Битрикс (и с учётом этой) хотелось бы уточнить - действительно ли функциональность уже встроенных библиотек никак не расширить?
Например, для расширения функциональности Cordova используются плагины, которые можно, конечно же, установить. Но а у Битрикса что, совсем никак?
Допустим, есть плагин, который позволяет включить/отключить вспышку на телефоне. И, получается, в рамках Битрикса я могу попрощаться с этой нужной для некоторых случаев функцией?
Буду очень благодарен за ответ.
Встроенных да, ни как. Именно по этому, давно перешел на Cordova - имею ввиду, не пользуюсь битриксовым модулем, делаю все с нуля на чистой Cordova

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Старые шаблоны битрикс для простой верстки Просмотров: 18217 Новые версии типового интернет-магазина, который идет в комплекте с Битрикс (от 12 версии ... Адаптивное гамбургер меню для битрикс Просмотров: 15172 Заметка коротенькая, но решил оставить ее - так как самому часто нужно нечто подобное. В а... Скопировать номер телефона из поля пользователя в телефон для регистр... Просмотров: 2841 Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режи... Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства э... Просмотров: 6498 Задачка: Каталог наполняется из 1С, но 1С не передает коэффициент единицы измерения (особе... Открытие мобильного приложения Apache Cordova по ссылке Просмотров: 1194 Достаточно часто нужно реализовывать открытие мобильного приложения по ссылке. Например: п... Вывод элементов с помощью API битрикс Просмотров: 24003 Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Нап... Массово: применить наценку ко всем товарам каталога с пересчетом от б... Просмотров: 6401 Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все това... Свойство: привязка к Яндекс:Картам - вывести из нескольких элементов ... Просмотров: 18697 Предположим, что у вас есть инфоблок со свойством "Привязка к яндекс картам". В этом инфоб... Вывести дополнительное пользовательское поле, использование полей в ф... Просмотров: 16795 Если вам нужно вывести дополнительное пользовательское поле типа "Привязка к разделам инфо... Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под ... Просмотров: 12793 В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное ра... Изменить размер картинок на лету в битрикс Просмотров: 48894 Встала задачка: на собственном сайте, уменьшить размер превьюшек картинок у анонсов раздел... Вывести артикул в печатную форму бланка заказа Просмотров: 1114 Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе. ... Добавить свойство в административную форму заказа Просмотров: 3802 Задача, кастомизировать административную форму заказа: добавить свойство заказа в шапку фо... Автоматическая загрузка каталогов из csv файлов в Битрикс Просмотров: 11828 Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В... Помечаем новинки лейблом в каталоге битрикс Просмотров: 20877 Достаточно часто, при разработке каталога товаров или интернет магазина на системе управле... Простой WEB сервер на ubuntu, для Битрикс Просмотров: 35965 Расскажу как по быстрому сконфигурировать WEB сервер для работы с Битрикс. Безо всяких ngi... Установка Битрикс24 "Интернет-Магазин + CRM" на один домен и настройк... Просмотров: 1709 Задача: установить лицензию "Интернет-Магазин + CRM" на один домен. Что бы crm была доступ... Denwer c PHP 7.1.8 и MYSQL 5.7 оптимизированный для Битрикс Просмотров: 30811 В последнее время, все чаще приходиться работать на Windows, хотя и не люблю эту ОС- с точ... Очистка корзины в 1С-Битрикс одним нажатием Просмотров: 29636 В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием... Вывести товары из того же раздела в карточке товара Просмотров: 18895 Немножко топорный, но все же вполне действенный способ по выводу внутри подробной карточки...