Отправка действий в браузер пользователю (пуш, алерт и т.д.)

В этом демо мы покажем как можно отправлять запрос конкретному пользователю (по username или falconGuid) через внешнее действие из SQL и выполнять типовые задачи на странице. 

Примечание. Необходимо разрешить в браузере отправку Push уведомлений

Что делает эта форма: 

  • отправляет пуш уведомление
  • отправляет alert 
  • отправляет данные в printlog пользователю 
  • проигрывает звуковой файл 
  • обновляет часть страницы пользователя

Важный момент - отправка может идти любому онлайн пользователю (по falconGuid для неавторизованных и по username для авторизованных пользователей). В данном случае мы просто отправляем команду sendToBrowser самим себе. 

Также по коду внешнего действия можно выполнить некий свой JS на стороне пользователя: 

$(function(){
	as.signalr_action1 = function(data){
    	console.log("Полученные с сервера данные", data);
    }
});

Документация по внешним действиям - https://falcon.web-automation.ru/docs/vneshnie-deystviya

Как реализовать вызов SendToBrowser

SaveItem у формы: 

CREATE PROCEDURE [dbo].[fm_watch_sendToBrowser_saveItem]
   @username nvarchar(256), 
   @itemID int, 
   @parameters ExtendedDictionaryParameter readonly
   
AS
BEGIN
	declare @falconGuid nvarchar(128) = (select Value2 from @parameters where [key]='falconGuid')
	declare @pushTitle nvarchar(max) = replace((select Value2 from @parameters where [key]='pushTitle'), '"', ' ')
	declare @pushText nvarchar(max) = replace((select Value2 from @parameters where [key]='pushText'), '"', ' ')
	declare @pushIcon nvarchar(max) = replace((select Value2 from @parameters where [key]='pushIcon'), '"', ' ')
	declare @pushImage nvarchar(max) = replace((select Value2 from @parameters where [key]='pushImage'), '"', ' ')
	
    declare @alertTitle nvarchar(max) = replace((select Value2 from @parameters where [key]='alertTitle'), '"', ' ')
	declare @alertText nvarchar(max) = replace((select Value2 from @parameters where [key]='alertText'), '"', ' ')
	declare @alertType nvarchar(max) = replace((select Value2 from @parameters where [key]='alertType'), '"', ' ')
	declare @audioUrl nvarchar(max) = replace((select Value2 from @parameters where [key]='audioUrl'), '"', ' ')
	
    declare @plTitle nvarchar(max) = replace((select Value2 from @parameters where [key]='plTitle'), '"', ' ')
	declare @plText nvarchar(max) = replace((select Value2 from @parameters where [key]='plText'), '"', ' ')
	declare @plType nvarchar(max) = replace((select Value2 from @parameters where [key]='plType'), '"', ' ')
	
    
	-- 1 SELECT (Result, Msg)
	select 1 Result, 'OK' Msg
    
      select 'sendToBrowser' type, '' username, @falconGuid falconGuid, 'action1' code,
    	'{
        	"pushOptions": {
         	   "title": "'+@pushTitle+'",
               "body": "'+@pushText+'",
               "icon": "'+@pushIcon+'",
               "image": "'+@pushImage+'",
               "id": 1,
               "actions": [{"action": "https://yandex.ru", "title": "Yandex"}, {"action": "https://google.com", "title": "Google"}],
               "vibrate": true,
               "tag": "'+try_convert(nvarchar(128), newID())+'"
         	},
        	"alert": {
         	   "text": "'+@alertText+'",
                   "type": "'+@alertType+'",
                   "delay": 15000,
                   "hidePrev": false,
                   "title": "'+@alertTitle+'"
         	},
                "audio": "'+@audioUrl+'",
                "updates": [
            	     {"control": "table", "code":"code1", "itemID": "123", "pk":"12345", "col": "col1", "value": "value1"},
                     {"control": "form", "code":"code1", "itemID": "123", "col": "col1", "value": "value1"}
                ],
                "refreshContainer": ".class1",
                "setContainerContent": { "selector": ".class1", "value": "< div class=''font-weight-bold text-success my-2'' >Это текст загружен в контейнет class1 из Внешнего действия</ div >", "delay": 1000 },
                "printlog": {
                	"title": "'+@plTitle+'", 
                    "text" : "'+@plText+'", 
                    "type": "'+@plType+'"
                }

         }' data
END
Насколько полезна эта возможность?

Другие модули

Поздравление клиента с днем рождения. Как увеличить касания с клиентами

Комментарии с флажками

Оконный интерфейс пользователя в личном кабинете на сайте - терминалы

Управление статусом заявки на сайте

Добавление звука на сайт при действиях пользователя. Как сделать звук на сайте

Копирование текста в буфер обмена

Горизонтальный скроллинг на телефоне - прокрутка панелей вправо на мобильном экране

Красивые панели для выделения информации

Последние обновления

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства