Меню

Заполнение множественного пользовательского свойства типа "строка" через API

RSS
Заполнение множественного пользовательского свойства типа "строка" через API
 
Заполнение множественного пользовательского свойства типа "строка" через API

Задача: когда пользователь заходит в мобильное приложение, нужно сохранить FCM токен устройства в пользовательское поле "Токены устройств". Поле является множественной строкой - так как у пользователя может быть не одно устройство.
 
В template.php стоит так же обвернуть скрипт проверкой на авторизацию пользователя:
Код
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

if ($USER->IsAuthorized()) {?>
    <script>
        document.addEventListener('deviceready', onDeviceReady, false);
        function onDeviceReady() {
            setTimeout(() => {

                window.FirebasePlugin.getToken(function (token) {
                    // alert(token); // Сохраняем этот токен в базе данных сайта
                    // Отправляем токен на сервер
                    $.ajax({
                        url: '',
                        type: 'POST',
                        data: {
                            token: token
                        },
                        success: function(response) {
                            //console.log('Token saved successfully: ' + response);
                        },
                        error: function(xhr, status, error) {
                            //console.error('Error saving token: ' + error);
                        }
                    });
                }, function (error) {
                    //console.log(error);
                });
            }, 100);
        }
    </script>
<? } ?>

Либо, вообще, оставить template.php пустым, а скрипт подключить прямо в component.php
Код
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

use Bitrix\Main\Loader;
use Bitrix\Main\UserTable;

Loader::includeModule("main");

global $USER;

if ($USER->IsAuthorized()) {
  $path = $this->GetPath();
    ?>
    <script src="<?=$path?>/script.js"></script>
<?if (
     $_SERVER['REQUEST_METHOD'] === 'POST' &&
     isset($_POST['token'])
) {
    $userId = $USER->GetID();
    $newToken = htmlspecialchars(trim($_POST['token']));

    ... ОСТАЛЬНОЙ КОД ...

    die(); // Завершаем выполнение скрипта после обработки AJAX-запроса
}

} // end if ($USER->IsAuthorized()) 

$this->includeComponentTemplate();
Изменено: Михаил Базаров - 18.05.2024 11:16:10
Читают тему (гостей: 1)
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Получить все поля раздела, включая пользовательские, в section.php

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

Мобильные версии страниц и поисковые системы

Согласно требования поисковых систем: Яндекс и Google, в случае если у вашего сайта имеется мобильная версия, нужно увед...

Постраничная навигация в списке разделов Битрикс- catalog.section.list

Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно воспользоваться методами CDBR...

Вывести разделы инфоблока по первым буквам не меняя структуру каталога. Алфавитный указатель

Например: у нас есть инфоблок с большим количеством разделов. И мы хотим, на сайте разбить разделы по буквам. Самый прос...

AJAX корзина с отправкой количества из раздела каталога

Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При этом, у пользователя должна б...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Автоматическое создание подразделов в инфоблоке при добавлении раздела: реализация события OnAfterIBlockSectionAdd

Задача: когда контент-менеджер создает раздел в инфоблоке, необходимо автоматически создавать подразделы с заранее задан...

Следующая/предыдущая новость/статья при просмотре подробной в Битрикс

Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей типа: "Следующая/...

Информация о заказах и содержимое корзины текущего пользователя.

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