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

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

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

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

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

using System.Threading.Tasks; using Tessa.Platform.Links; using Tessa.UI; using Unity;

// ...

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

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

// ...

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

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

using Tessa.Extensions; using Tessa.Platform.Links; using Unity;

\\ ...

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

Для тестирования обработки ссылок можно использовать параметр /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