Как обрабатывать активацию универсального кода ресурса (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Приложение может зарегистрироваться в качестве стандартного обработчика определенного имени схемы универсального кода ресурса (URI). В качестве стандартного обработчика имени схемы URI могут быть зарегистрированы как классические приложения, так и приложения среды выполнения Windows. Если пользователь выбирает ваше приложение в качестве стандартного обработчика для имени схемы URI, ваше приложение будет активироваться при каждом запуске URI этого типа.

Рекомендуется регистрировать приложение в качестве обработчика имени схемы URI только в том случае, если планируется обрабатывать все запуски URI для схемы URI этого типа. Если вы все-таки решите зарегистрировать ваше приложение в качестве обработчика по умолчанию для имени схемы URI, необходимо предоставить пользователю функциональность, ожидаемую при активации вашего приложения для этой схемы URI. Например, приложение, которое регистрируется для имени схемы URI "mailto:", должно открывать окно для создания нового сообщения электронной почты, чтобы пользователь мог написать новое сообщение. Подробнее о сопоставлениях URI: Руководство и контрольный список по типам файлов и URI.

Далее будет показано, как зарегистрировать собственное имя схемы URI "alsdk://" и как активировать приложение при запуске URI "alsdk://" пользователем.

Примечание  

В приложениях Магазина Windows Phone определенные URI и расширения файлов зарезервированы для использования во встроенных приложениях и операционной системе. Попытки регистрации приложения с зарезервированными URI или расширением файла будут проигнорированы. Дополнительные сведения см. в списке на этой странице.

Инструкции

Этап 1: Указание точки расширения в манифесте пакета

Приложение принимает события активации только для имен схемы URI, указанных в манифесте пакета. Указать, что ваше приложение обрабатывает имя схемы URI alsdk, можно следующим образом.

  1. Двойным щелчком откройте package.appxmanifest в обозревателе решений.

    Далее приведено краткое описание каждого из полей, которые можно заполнить в манифесте пакета.

    Поле Описание

    Имя

    Выберите имя для группы типов файлов, которые имеют общие отображаемое имя, логотип, подсказку и флаги редактирования. Выберите для группы такое имя, которое будет сохраняться неизменным при обновлении приложения.

    Примечание  Все буквы имени должны быть строчными.
     

    Зарезервированные и запрещенные типы файлов

    Ниже представлены списки схем URI, которые нельзя зарегистрировать, поскольку они либо зарезервированы, либо запрещены:

    Примечание  

    Для приложений Магазина Windows

    application.manifest, application.reference, batfile, blob, cerfile, chm.file, cmdfile, comfile, cplfile, dllfile, drvfile, exefile, explorer.assocactionid.burnselection, explorer.assocactionid.closesession, explorer.assocactionid.erasedisc, explorer.assocactionid.zipselection, explorer.assocprotocol.search-ms, explorer.burnselection, explorer.closesession, explorer.erasedisc, explorer.zipselection, file, fonfile, hlpfile, htafile, inffile , insfile, internetshortcut, jsefile, lnkfile, microsoft.powershellscript.1, ms-accountpictureprovider, ms-appdata, ms-appx, ms-autoplay, msi.package, msi.patch, ms-windows-store, ocxfile, piffile, regfile, scrfile, scriptletfile, shbfile, shcmdfile, shsfile,smb, sysfile, ttffile,unknown, usertileprovider,vbefile,vbsfile, windows.gadget,wsffile, wsfile,wshfile

    Примечание  

    Для универсальных приложений Windows Phone

    Windows Phone резервирует следующие схемы URI для встроенных приложений.

    bing, callto, dtmf, http, https, mailto, maps, ms-excel, ms-powerpoint, ms-settings-airplanemode, ms-settings-bluetooth, ms-settings-cellular, ms-settings-emailandaccounts, ms-settings-location, ms-settings-lock, ms-settings-wifi, ms-word, office, onenote, tel, wallet, xbls, zune

    Windows Phone резервирует следующие схемы URI для операционной системы.

    Explorer.AssocActionId.BurnSelection, Explorer.AssocActionId.CloseSession, Explorer.AssocActionId.EraseDisc, Explorer.AssocActionId.ZipSelection, Explorer.AssocProtocol.search-ms, Explorer.BurnSelection, Explorer.CloseSession, Explorer.EraseDisc, Explorer.ZipSelection, File, Iehistory, Ierss, Javascript, Jscript, LDAP, Res, rlogin, StickyNotes, telnet, tn3270, Vbscript, windowsmediacenterapp, windowsmediacenterssl, windowsmediacenterweb, WMP11.AssocProtocol.MMS

    Отображаемое имя

    Задайте отображаемое имя, которое будет определять имя схемы URI в разделе Выбор программ по умолчанию на панели управления.

    Логотип

    Укажите логотип, по которому можно будет определить имя схемы URI в разделе Выбор программ по умолчанию на панели управления. Если логотип не указан, используется мелкий логотип приложения.

    Desired View (только Windows)

    В поле Desired View укажите объем пространства, необходимого окну приложения, которое запускается для данной схемы URI. Возможные значения Desired View: Default, UseLess, UseHalf, UseMore и UseMinimum.

    Примечание  При определении окончательного размера окна целевого приложения Windows учитывает несколько различных факторов, таких как настройка исходного приложения, количество приложений на экране, ориентация экрана и т. п. Настройка Требуемое представление не гарантирует, что окно целевого приложения будет работать точно запрошенным образом.
     

    Windows 8.1:  Desired View не поддерживается до выхода Windows 8.1 и Windows Server 2012 R2.

    Windows Phone:  Desired View не поддерживается для Windows Phone.

     

  2. Выберите вкладку Объявления.

  3. В раскрывающемся списке выберите Протокол и нажмите кнопку Добавить.

  4. Введите alsdk в поле Имя.

  5. В качестве логотипа укажите "images\Icon.png".

  6. Нажмите клавиши CTRL+S, чтобы сохранить изменение в package.appxmanifest.

В результате в манифест пакета будет добавлен элемент Extension. Категория windows.protocol обозначает, что приложение обрабатывает имя схемы URI alsdk.


<Package xmlns="https://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="https://schemas.microsoft.com/appx/2013/manifest">
   <Applications>
      <Application Id="AutoLaunch.App">
         <Extensions>
            <Extension Category="windows.protocol">
               <Protocol Name="alsdk"/>
               <Logo>images\logo.png</Logo>                                     
               <DisplayName>SDK Sample URI Scheme</DisplayName>
            </Extension>                      
         </Extensions>
      </Application>
   </Applications>
</Package>

Этап 2: Добавление подходящих значков

Значки приложений, которые будут использоваться по умолчанию для того или иного имени схемы URI, будут отображаться в различных местах системы, например на панели управления в разделе программ по умолчанию.

Рекомендуется включить в проект подходящие значки, чтобы ваш логотип хорошо смотрелся в любом из указанных мест. Для приложения Магазина Windows включите в папку изображений мелкие логотипы и значки размером 16, 32, 48 и 256 пикселей. Для приложения магазина Windows Phone включите вместо них логотипы и значки размером 63, 129 и 336 пикселей. Эти значки должны сочетаться с логотипом на плитке приложения и иметь фиксированную цветовую палитру, а логотип должен расширяться до краев, не заполняя плитку. Протестируйте значки на белом фоне. Примеры значков см. в разделе Пример запуска сопоставления (Windows).

Обозреватель решений с представлением файлов в папке изображений. Icon.targetsize и smallTile-sdk доступны в вариантах размером 16, 32, 48 и 256 пикселей.

Этап 3: Регистрация для события активации

Для обработки активации URI выполните регистрацию для события activated.

WinJS.Application.addEventListener("activated", onActivatedHandler, false);

Этап 4: Обработка события активации

Обработчик событий activated, зарегистрированный на шаге 1, принимает все события активации. Свойство kind обозначает тип события активации. В этом примере выполняется обработка событий активации protocol.

function onActivatedHandler(eventArgs) {
   if (eventArgs.detail.kind == Windows.ApplicationModel.Activation.ActivationKind.protocol) 
   {
       // TODO: Handle URI activation.

       // The received URI is eventArgs.detail.uri.rawUri
   }
}

Замечания

Ваше имя схемы URI могут использовать любые приложения и веб-сайты, в том числе вредоносные. Таким образом, получаемые через URI данные могут поступать из ненадежного источника. Рекомендуется никогда не выполнять неотменяемое действие на основе параметров, принятых через URI. Например, параметры URI могут использоваться для запуска приложения на странице учетной записи пользователя, однако их ни в коем случае не следует использовать для прямого внесения изменений в учетную запись пользователя.

Примечание  Если вы создаете новое имя схемы URI для своего приложения, следуйте рекомендациям RFC 4395. Это гарантирует, что созданное вами имя будет соответствовать стандартам для схем URI.

 

Примечание  

При запуске приложения через контракт протокола кнопка «Назад» в универсальных приложениях Windows Phone должна возвращать пользователя обратно на экран, с которого было запущено приложение, а не к предыдущему содержимому приложения.

Рекомендуется, чтобы приложения создавали новый фрейм XAML для каждого события активации, открывающего новый целевой объект URI. Тогда стек переходов назад для нового фрейма XAML не будет включать предыдущее содержимое, которое могло отображаться в текущем окне во время приостановки приложения.

Приложения, использующие один фрейм XAML для контрактов запуска и протокола, должны очищать страницы в журнале навигации фрейма перед переходом на новую страницу. При запуске через контракт протокола приложения должны предусматривать пользовательский интерфейс, при помощи которого пользователь сможет вернуться в начало приложения.

Полный пример

См. пример запуска сопоставления (Windows).

Связанные разделы

Понятия

Программы по умолчанию

Модель сопоставления типов файлов и URI

Справочник по совместимости Windows 8 Release Preview и Windows Server 2012 RC (сведения о пользовательской модели)

Задачи

Запуск приложения по умолчанию для универсального кода ресурса (URI)

Обработка активации файла

Руководства

Руководство и контрольный список по типам файлов и URI

Ссылки

Windows.UI.WebUI.WebUIProtocolActivatedEventArgs

WinJS.Application.onactivated