API для обработки ссылок¶
API для обработки ссылок - это механизм, позволяющий реализовать пользовательскую логику обработки для открытия ссылок из интерфейса пользователя desktop/web-клиента.
Интерфейсы и классы, относящиеся к API для обработки ссылок, и их описание¶
IUriLinkHandler - интерфейс для обработчиков ссылок.
StandardUriLinkHandler - стандартный обработчик для ссылок.
UriLinkHandlerEventType - тип события, для которого обрабатывается ссылка. В обработчике можно реализовать логику обработки ссылок в зависимости от данного типа события.
IUriLinkDependencies - объект, содержащий зависимости для обработки ссылок.
IUriLinkDependenciesFactory - фабрика для создания объектов IUriLinkDependencies.
Использование и реализация API для обработки ссылок¶
Для переопределения логики стандартной обработки ссылок необходимо реализовать интерфейс IUriLinkHandler и переопределить его стандартную реализацию в DI. Затем зарегистрировать новую реализацию в DI. Пример реализации см. в базе знаний: Переопределение IUriLinkHandler для desktop-клиента..
Однако, в web-клиенте отсутствует механизм DI, для создания необходимой инфраструктуры UriLinkAPI используется глобальная фабрика, которая позволяет переопределить пользовательский обработчик. Пример реализации см. в базе знаний: Переопределение IUriLinkHandler для web-клиента..
Имплементация API для обработки ссылок в других местах, не предусмотренных стандартным решением¶
Для реализации данного API в других местах клиента, не предусмотренных стандартным решением, можно воспользоваться интерфейсами IUriLinkDependenciesFactory и IUriLinkDependencies.
Сначала необходимо получить из DI фабрику зависимостей для обработки ссылок IUriLinkDependenciesFactory, и создать с помощью этой фабрики зависимости. Также фабрика может создавать зависимости с учетом используемого UI-контекста IUIContext. В дальнейшем полученные зависимости можно использовать для обработки ссылок посредством API для обработки ссылок. Пример реализации см. в базе знаний: Реализация для desktop, Реализация для web.
События UriOpening для контролов “Текст с форматированием” и форумов (обсуждений)¶
У контрола “Текст с форматированием”, а также в форумах (обсуждениях) есть событие, поднимаемое при клике на ссылку. Обработчики этого события выполняются перед глобальным обработчиком ссылок (см. API для обработки ссылок) и имеют возможность отменить выполнение глобального обработчика ссылок.
Событие должно принимать аргументы типа UriLinkEventArgs, которые содержат открываемый URI, а также признак отмены выполнения глобального обработчика.
Для того чтобы добавить пользовательские обработчики таких событий можно, например, использовать расширения типа ICardUIExtension: Пример добавления для desktop, Пример добавления для web.