Мобильное приложение «Битрикс» для платформ 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);
?>
Не забудьте после отладки отправить в «Битрикс» заявку на пересборку приложения с указанием имени домена.
Удачи!
Назад в раздел