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.