+7 495 008 8452
  • Загрузка
Выберите ваш цвет

Нюансы работы с мобильным приложением «Битрикс»

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.

Мобильное приложение «Битрикс» для платформ iOS и Android сильно упрощает жизнь администраторам сайтов, sales - менеджерам интернет-магазинов, разработчикам веб-студий. Сегодня мы дадим вам пару лайфхаков для увеличения продуктивности и удобства.

1. Как настроить push-уведомления?

По мере работы с обильным приложением возникает желание подключить push-уведомления для получения оперативной информации по проекту. Для этого надо сначала подписать приложение на получение push-уведомлений. Вот скрипт подписки:

<?
    define('NO_KEEP_STATISTIC', true);
    define('NO_AGENT_STATISTIC', true);
    define('NOT_CHECK_PERMISSIONS', true);
    require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php');

    if(!check_bitrix_sessid()) return;

    $token = $_REQUEST["device_token"];
    $arFields = Array(
        "USER_ID" => $USER->GetID(),
        "DEVICE_NAME" => $_REQUEST["device_name"],
        "DEVICE_TYPE" =>  $_REQUEST["device_type"],
        "DEVICE_ID" => $_REQUEST["uuid"],
        "DEVICE_TOKEN" => $token,
        "APP_ID" => "BitrixMobile"
    );
    if(!$_REQUEST["device_token"])
        break;
    if(!CModule::IncludeModule("pull"))
    {
        $arResult["ERROR"] = GetMessage("MOBILEAPP_PULL_NOT_INSTALLED");
        break;
    }
    $uuid = $_REQUEST["uuid"];
    $data = array(
        "register_token" => "fail",
        "token" => $token,
        "user_id" => $USER->GetID() 
    );
    $dbres = CPullPush::GetList(Array(), Array("=DEVICE_ID" => $uuid));
    $arToken = $dbres->Fetch();
    if($arToken["ID"])
    {
        $res = CPullPush::Update($arToken["ID"], $arFields);
        if($res)
            $data["register_token"] = "updated";
    }
    else
    {
        $res = CPullPush::Add($arFields);
        if($res)
            $data["register_token"] = "created";
    }
    $arResult["DATA"] = $data;
    if(isset($arResult["ERROR"]))
        $arResult["RESULT"] = "ERROR";
    else
        $arResult["RESULT"] = "OK";
    $arResult = $APPLICATION->ConvertCharsetArray($arResult, SITE_CHARSET, 'utf-8');
    die(json_encode($arResult));
    ?>


Учтите, что вам надо будет заменить строчку

"APP_ID" => "BitrixMobile"


а для этого отредактировать ваше приложение по адресу /eshop_app/pull.php

Отправлять уведомления будет JS скрипт, который вы будете вызывать при необходимых событиях на сервере. Вот его код:

BX.ready(function(){
        DEV.getToken();
    });
    DEV = {
        getToken : function ()
        {
            var _this = this,
                dt = "APPLE";

            if (platform != "ios")
                dt = "GOOGLE";

            var params = {
                callback: function (token)
                {
                    var postData = {
                        action: "save_device_token",
                        device_name: device.name,
                        uuid: device.uuid,
                        device_token: token,
                        device_type: dt,
                        sessid: BX.bitrix_sessid()
                    };

                    BX.ajax({
                        timeout:   30,
                        method:   'POST',
                        dataType: 'json',
                        url:       '/eshop_app/pull.php',
                        data:      postData,
                    });
                }
            };

            return app.exec("getToken", params);
        }
    };


2. Как изменить дизайн приложения?

За настройку приложения, в том числе и за дизайн, отвечает файл settings.php по адресу /myfirst_app/settings.php. В нем можно настраивать фон приложения, кнопки, навигационной панели и другие элементы интерфейса.

<?
header("Content-Type: application/x-javascript");

$settings = array(
   "buttons" =>
   array(
      "stretchable" => array(
         "flag" => "YES",
         "main_position_horizontal" => "0.0",//точка по горизонтали для растягивания кнопки
         "main_position_vertical" => "0.0",//точка по вертикали для растягивания кнопки
         "back_text_position_horizontal" => "5.0",//точка по горизонтали для растягивания кнопки (ios)
         "back_text_position_vertical" => "0.0"//точка по вертикали для растягивания кнопки(ios)
      ),
      "default_back_button" => "back_text",
       "button_height" => "35.0", //ширина кнопки
       "button_width" => "100.0", //высота кнопки
      "main_background_image" => "/myfirst_app/img/button.png", //растягиваемый фон кнопки
      "back_text_background_image" => "/myfirst_app/img/button.png", //растягиваемый фон кнопки назад
      "type" => array( 
         "flag" => "/myfirst_app/img/menu_icon_finish.png",//своя иконка флажка для кнопки
         "green_cross" => "/myfirst_app/img/green_cross.png",//какая-то другая иконка
      )
   ),
   "controller_settings" => array("main_background" => array(
      "image" => "/myfirst_app/img/back.png", //основной фон приложения
      "color" => "#AFFBB3"// цвет фона, имеет приоритет перед image
   ),
      "loading_background" => array(
         "image" => "/myfirst_app/img/back1.png", //фон экрана загрузки
         "color" => "#F0F0F0"//цвет экрана загрузки, имеет приоритет перед image
      ),
      "navigation_bar_image" => "/myfirst_app/img/panel2.png", //фон навигационной панели 
      "navigation_bar_image_large" => "/myfirst_app/img/panel2.png", //фон навигационной панели для планшетов
      "toolbar_bar_image" => "/myfirst_app/img/panel.png", //фон тулбара ios
      "toolbar_bar_image_large" => "/myfirst_app/img/panel.png", //фон тулбара для планшетов ios
   ),
   "table" => array(
      "background_cell_image" => "/myfirst_app/img/a_panel.png", //фон ячейки списка
      "row_height" => "150.0",//высота ячейки 
      "row_height_large" => "63.0"//высота ячейки планшетная

   ),
   "pull_down" => array(
      "icon" => "/myfirst_app/img/down_arrow.png",//стрелочка для пулдауна
      "text_color" => "#A3F2CE",//цвет текста пулдауна
   )
);
echo json_encode($settings);
?>


Не забудьте после отладки отправить в «Битрикс» заявку на пересборку приложения с указанием имени домена.

Удачи!

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...