Расширенное API для кастомного вызова предварительного окна подписки

New API for registerUserForPush

Opt-in (предварительное окно подписки) настраивается в нашем сервисе такими параметрами. 

Их на верхнем уровне три:

brandingEnabled(не меняется)
desktopProps
mobileProps

Внутри каждого есть настройки для позиционирования, цвета, типа opt-in, текста. 

New API разрешает выбрать отдельный пункт, или несколько и переопределить их.

Пример:

Gravitec.push([
     "registerUserForPush",
     console.log,
     { mobileProps: { type: "MODAL" }, desktopProps: { type: "MODAL" } }
    ]);

// Код установит тип opt-in на desktop и на mobile в MODAL

Gravitec.push([
     "registerUserForPush",
     null,
     {
       desktopProps: {
         subscTexts: [
           { lang: "default", value: "Overrided text for subscription prompt" }
         ]
       }
     }
    ]);

// Код установит основной текст на десктопному opt-in.

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

Gravitec.push([
     "registerUserForPush",
     null,
     {
       desktopProps: {
         subscTexts: [
           {
             lang: "default",
             value: "Overrided text for subscription prompt"
           },
           { lang: "en", value: "Special text for english version" },
           { lang: "ru", value: "Текст на русском" },
           { lang: "ua", value: "Текст для української версії" }
         ]
       }
     }
   ]);
Gravitec.push([
     "registerUserForPush",
     null,
     {
       desktopProps: {
         subscTexts: [
           { lang: "en", value: "Overrided text for subscription prompt" }
         ],
         allowTexts: [{ lang: "en", value: "Over allow" }],
         blockTexts: [{ lang: "en", value: "Over block" }]
       }
     }
    ]);

// Код установит все текстовки для декстопного opt-in

Для управления вызова opt-in после блокировки есть специальный параметр ignoreBlockedCookie, который по дефолту true для ручного вызова registerUserForPush. Он игнорирует переменную куки, которая устанавливается после того, как посетитель блокирует на opt-in. Данная переменная и не разрешает показывать подписку в сессии браузера. 

При ручном вызове registerUserForPush по дефолту всегда будет показываться opt-in. Переменная куки будет удаляться.

Параметр ignoreBlockedCookie можна перезаписывать:

Gravitec.push([
     "registerUserForPush",
     null,
     {
       ignoreBlockedCookie: false,
       desktopProps: {
         subscTexts: [
           { lang: "default", value: "Overrided text for subscription prompt" }
         ]
       }
     }
    ]);