Перейти к содержанию

Расширения на обработку ссылок tessa://

Расширения на обработку ссылок tessa://

Пусть требуется добавить новый тип ссылки, который обрабатывает некоторый заданный Action=MyAction. tessa://tessaclient.tessa?Action=MyAction&Param1=value1

Для этого в клиентских расширениях (проект Tessa.Extensions.Client) пишется статический метод Handler, который принимает параметр ILinkContext и выполняет обработку ссылки, параметры которой указаны в контексте.

public static class MyActionLink { public static void Handler(ILinkContext context) { // если требуется, то можно активировать главное окно приложения; // например, если оно было свёрнуто, то оно разворачивается context.ActivateShell();

// код по обработке ссылки string param1 = context.Parameters["Param1"]; // "value1" var uiHost = context.Container.Resolve<IUIHost>(); ...

// ставим Handled, если ссылка была успешно обработана; // например, карточка была открыта, если это ссылка на открытие карточки context.Handled = true; } }

Чтобы задать Action=MyAction, метод-обработчик Handler требуется зарегистрировать следующим образом:

[Registrator] public sealed class Registrator : RegistratorBase { public override void FinalizeRegistration() { if (this.UnityContainer.IsRegistered<ILinkManager>()) { this.UnityContainer .Resolve<ILinkManager>() .Register("MyAction", MyActionLink.Handler) ; } } }

Для тестирования обработки ссылок можно использовать параметр /link приложения, в котором указать часть ссылки после знака “?”: Action=MyAction&Param1=value1. При вызове из командной строки требуется заключить параметр в кавычки, чтобы корректно был выполнен escaping служебных символов. Например:

TessaClient.exe "/link:Action=MyAction&Param1=value1"

Приложение TessaClient вместе с обновлёнными расширениями Tessa.Extensions.Client.dll требуется опубликовать на сервере приложений, после чего на компьютерах с установленным Tessa Applications при переходе по ссылке будет автоматически скачано обновление TessaClient, и в приложении будет запущен написанный обработчик MyActionLink.Handler.

Back to top