Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как зарегистрировать приложение, чтобы стать обработчиком по умолчанию для имени схемы универсального идентификатора ресурса (URI). Классические приложения Windows и приложения Универсальной платформы Windows (UWP) могут зарегистрировать себя в качестве обработчика по умолчанию для имени схемы URI. Если пользователь выбирает приложение в качестве обработчика по умолчанию для имени схемы URI, приложение будет активировано при каждом запуске типа URI.
Рекомендуется регистрировать имя схемы URI только в том случае, если вы собираетесь обрабатывать все запуски URI для этой схемы. Если вы решили зарегистрировать имя схемы URI, необходимо предоставить пользователю функциональность, которая ожидается при активации приложения для этой схемы URI. Например, приложение, которое регистрируется для имени схемы mailto: URI, должно открывать новое сообщение электронной почты, чтобы пользователь смог написать новое письмо. Дополнительные сведения о сопоставлениях URI см. в разделе "Файлы", "Папки" и "Библиотеки".
Данные шаги показывают, как зарегистрировать имя пользовательской схемы URI alsdk://
и как активировать ваше приложение, когда пользователь запускает URI alsdk://
.
Важные API
В этом разделе используются следующие API:
- Windows.ApplicationModel.Activation.ProtocolActivatedEventArgs (аргументы события активации протокола)
- Windows.UI.Xaml.Application.OnActivated
- AppInstance.GetActivatedEventArgs
Замечание
В Windows некоторые URI и расширения файлов зарезервированы для использования встроенными приложениями и операционной системой. Попытки регистрации приложения с зарезервированным универсальным кодом ресурса (URI) или расширением файла будут игнорироваться. См. Зарезервированные имена схем URI и типы файлов, чтобы получить алфавитный список схем URI, которые нельзя зарегистрировать для приложений, потому что они либо зарезервированы, либо запрещены.
Шаг 1. Указание точки расширения в манифесте пакета
Приложение получает события активации только для имен схем URI, перечисленных в манифесте пакета. Вот как указать, что ваше приложение обрабатывает имя схемы URI alsdk
.
В обозревателе решений дважды щелкните package.appxmanifest, чтобы открыть конструктор манифестов. Выберите вкладку Декларации и в раскрывающемся списке Доступные декларации выберите Протокол , а затем нажмите кнопку Добавить.
Ниже приведено краткое описание каждого из полей, которые можно заполнить конструктором манифестов для протокола (дополнительные сведения см. в манифесте пакета AppX ):
Поле | Описание |
---|---|
Логотип | Укажите логотип, используемый для идентификации имени схемы URI в задания программ по умолчанию на панели управления . Если логотип не указан, используется небольшой логотип для приложения. |
Отображаемое имя | Укажите отображаемое имя, чтобы определить имя схемы URI в |
Имя | Выберите имя схемы URI. |
Примечание Имя должно быть написано строчными буквами. | |
Зарезервированные и запрещенные типы файлов Имена и типы файлов зарезервированных схем URI см. в алфавитном списке схем URI, которые нельзя зарегистрировать для приложений Windows, так как они зарезервированы или запрещены. | |
исполняемый | Указывает исполняемый файл запуска по умолчанию для протокола. Если это не указано, используется исполняемый файл приложения. Если задано, строка должна быть длиной от 1 до 256 символов, должна заканчиваться с ".exe", и не может содержать следующие символы: >, : , <", ", ", |, ?или *. Если указано, также используется точка входа . Если точка входа не указана, используется точка входа, определенная для приложения. |
точка входа | Указывает задачу, которая обрабатывает расширение протокола. Обычно это полное имя пространства имен типа среды выполнения Windows. Если это не указано, используется точка входа для приложения. |
главная страница | Веб-страница, обрабатывающая точку расширяемости. |
Группа ресурсов | Тег, который можно использовать для группирования активаций расширений вместе для целей управления ресурсами. |
Желаемое представление (только для Windows) | Укажите поле требуемого представления, чтобы указать объем пространства, необходимого для окна приложения при его запуске по имени схемы URI. Возможные значения для Желаемый вид: Default, UseLess, UseHalf, UseMoreили UseMinimum. Заметка Windows учитывает несколько различных факторов при определении конечного размера окна целевого приложения, например предпочтения исходного приложения, количества приложений на экране, ориентации экрана и т. д. Настройка требуемого представления не гарантирует определённое поведение окон для целевого приложения. семейство мобильных устройств: требуемого представления не поддерживается в семействе мобильных устройств. |
Введите
images\Icon.png
как логотип .Введите
SDK Sample URI Scheme
в качестве отображаемого имениВведите
alsdk
в качестве имени .Нажмите клавиши CTRL+S, чтобы сохранить изменение в package.appxmanifest.
При этом в манифест пакета добавляется элемент Extension , подобный этому элементу. Категория windows.protocol указывает, что приложение обрабатывает имя схемы URI
alsdk
.
<Applications>
<Application Id= ... >
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="alsdk">
<uap:Logo>images\icon.png</uap:Logo>
<uap:DisplayName>SDK Sample URI Scheme</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
...
</Application>
</Applications>
Шаг 2. Добавление соответствующих значков
Иконки приложений, которые становятся используемыми по умолчанию для схемы URI, отображаются во многих местах в системе, например, на панели управления в разделе "Программы по умолчанию". Добавьте значок 44x44 в проект для этой цели. Сопоставляйте внешний вид логотипа плитки приложения и используйте цвет фона приложения, а не прозрачный значок. Сделайте так, чтобы логотип доходил до края без отступов. Проверьте значки на белом фоне. Дополнительную информацию о значках приложений и логотипах см. в разделе Знаки и логотипы приложений.
Шаг 3. Обработка активированного события
Замечание
В приложении WinUI в App.OnLaunched (или в любое время) можно вызвать (AppInstance.GetActivatedEventArgs) для получения параметров события активации и проверить их, чтобы определить способ активации приложения. Дополнительные сведения о различиях жизненного цикла между приложениями UWP и WinUI см. в разделе «Миграция функциональности жизненного цикла приложения».
В приложениях UWP обработчик событий OnActivated получает все события активации. Свойство Kind указывает тип события активации. Этот пример настраивается для обработки событий активации протокола .
public partial class App
{
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
// TODO: Handle URI activation
// The received URI is eventArgs.Uri.AbsoluteUri
}
}
}
void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const& args)
{
if (args.Kind() == Windows::ApplicationModel::Activation::ActivationKind::Protocol)
{
auto protocolActivatedEventArgs{ args.as<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs>() };
// TODO: Handle URI activation
auto receivedURI{ protocolActivatedEventArgs.Uri().RawUri() };
}
}
void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs^ args)
{
if (args->Kind == Windows::ApplicationModel::Activation::ActivationKind::Protocol)
{
Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs^ eventArgs =
dynamic_cast<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs^>(args);
// TODO: Handle URI activation
// The received URI is eventArgs->Uri->RawUri
}
}
Замечание
При запуске с помощью контракта протокола убедитесь, что кнопка "Назад" возвращает пользователя на экран, который запустил приложение, а не предыдущий контент приложения.
Следующий код программно запускает приложение с помощью URI:
// Launch the URI
var uri = new Uri("alsdk:");
var success = await Windows.System.Launcher.LaunchUriAsync(uri)
Дополнительные сведения о запуске приложения с помощью URI см. в разделе "Запуск приложения по умолчанию для URI".
Рекомендуется, чтобы приложения создавали новый компонент XAML Frame для каждого события активации, которое открывает новую страницу. Таким образом, стек навигации для нового XAML кадра не будет содержать никакого предыдущего содержимого, которое приложение могло иметь в текущем окне в момент приостановки. Приложения, которые решили использовать один кадра XAML для запуска и файловых контрактов, должны очистить страницы в журнале навигациикадра перед переходом на новую страницу.
При запуске с помощью активации протокола приложения следует рассмотреть возможность включения пользовательского интерфейса, позволяющего пользователю вернуться на верхнюю страницу приложения.
Замечания
Любое приложение или веб-сайт может использовать имя схемы URI, включая вредоносные программы. Таким образом, любые данные, полученные в URI, могут поступать из ненадежного источника. Мы рекомендуем никогда не совершать постоянных действий на основе параметров, которые вы получаете в URI. Например, параметры URI можно использовать для запуска приложения на странице учетной записи пользователя, но мы рекомендуем никогда не использовать их для непосредственного изменения учетной записи пользователя.
Замечание
Если вы создаете имя схемы URI для приложения, обязательно следуйте инструкциям в RFC 4395. Это гарантирует, что ваше имя соответствует стандартам схем URI.
Замечание
Когда приложение UWP запускается с помощью контракта протокола, убедитесь, что кнопка "Назад" возвращает пользователя на экран, который запустил приложение, а не предыдущее содержимое приложения.
Мы рекомендуем приложениям создать новую XAML Frame для каждого события активации, которое открывает новый URI-целевой объект. Таким образом, стек навигации для нового XAML кадра не будет содержать никакого предыдущего содержимого, которое приложение могло иметь в текущем окне в момент приостановки.
Если вы решите, что приложения должны использовать один кадр XAML для контрактов запуска и протокола, очистите страницы из журнала навигации кадра перед навигацией на новую страницу. При запуске с помощью контракта протокола рассмотрите возможность включения пользовательского интерфейса в приложения, которые позволяют пользователю вернуться в начало приложения.
Связанный контент
Windows developer