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

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

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

Внимание: 1С-Битрикс больше не распостраняет и не поддерживает модуль "Мобильное приложение". Заметка оставлена для истории.
Что бы сделать мобильное приложение для сайта используйте Apache Cordova.
Видеоурок, приложение на Apache Cordova

На самом деле, это 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>

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

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

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 500 000 руб. от 5-ти недель

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

Запуск сайта на готовом решении

от 100 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 500 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 350 000 руб. от 1-го месяца

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

Инфресурс

от 400 000 руб. от 5-ти недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Лечение сайтов от вирусов

от 40 000 руб. от 2-х дней

Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.