Как обрабатывать активацию файла (HTML)

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

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

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

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

Примечание  

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

Инструкции

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

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

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

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

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

    Тип содержимого

    Укажите тип содержимого MIME, например image/jpeg, для определенного типа файла.

    Важное примечание о допустимых типах содержимого:  Далее приводится список типов содержимого MIME в алфавитном порядке, которые запрещено вводить в манифест пакета, поскольку они либо зарезервированы, либо запрещены: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.

    Имя

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

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

    Подсказка

    Укажите подсказку для группы типов файлов. Эта подсказка отображается, когда пользователь наводит указатель мыши на значок файла этого типа.

    Флаги редактирования

    Укажите флаги редактирования для группы типов файлов. Флаги редактирования управляют доступом к файлу после его получения из ненадежного источника. Флаг OpenIsSafe указывает, что можно безопасно выполнять команду Open для любого скачиваемого файла этого типа. Флаг AlwaysUnsafe указывает, что автоматическое выполнение команды Open для данного типа файла отключено. Пользователь может переопределить этот атрибут в диалоговом окне "Тип файла". Этот флаг отменяет действие флага OpenIsSafe. Возможность установки флажка Больше не спрашивать отключается в диалоговом окне "Безопасность" при открытии ненадежных файлов этого типа.

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

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

    Логотип

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

    Тип файла

    Укажите тип файла для регистрации с точкой в начале имени, например ".jpeg".

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

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

    Примечание  

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

    Accountpicture-ms, Appx, application, Appref-ms, Bat, Cer, Chm, Cmd, Com, Cpl, crt, dll, drv, Exe, fon, gadget, Hlp, Hta, Inf ,Ins, jse, lnk, Msi, Msp, ocx, pif, Ps1, Reg, Scf, Scr, Shb, Shs, Sys, ttf, url, Vbe, Vbs, Ws, Wsc, Wsf, Wsh

    Примечание  

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

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

    AAC, AETX, ASF, BMP, CER, DOTM, DOTX, GIF, HDP, HTM, HTML, ICO, ICON, JPEG, JPG, JXR, M4A, M4RM, M4V, MOV, MP3, MP4, ONE, ONETOC2, P7B, PEM, PNG, PPTM, PPTX, QCP, RTF, TIF, TIFF, TXT, URL, VCF, WAV, WDP, WMV, XAP, XHT, XHTML, XLTM, XLTX, XML, XSL, ZIP

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

    ADE, ADP, APP, APPLICATION, APPREFMS, ASP, BAS, BAT, CAB, CHM, CMD, CNT, COM, CPF, CPL, CRD, CRDS, CRT, CSH, DER, DLL, EXE, FXP, GADGET, GRP, HLP, HME, HPJ, HTA, INF, INS, ISP, ITS, JAR, JS, JSE, KSH, LNK, MAD, MAF, MAG, MAM, MAQ, MAR, MAS, MAT, MAU, MAV, MAW, MCF, MDA, MDB, MDE, MDT, MDW, MDZ, MSC, MSH, MSH1, MSH1XML, MSH2, MSH2XML, MSHXML, MSI, MSP, MST, MSU, OPS, PCD, PIF, PL, PLG, PLSC, PRF, PRG, PRINTEREXPORT, PROVXML, PS1, PS1XML, PS2, PS2XML, PSC1, PSC2, PSM1, PST, PVW, PY, PYC, PYO, RB, RBW, RDP, REG, RGU, SCF, SCR, SHB, SHS, THEME, TMP, TSK, URL, VB, VBE, VBP, VBS, VHD, VHDX, VSMACROS, VSW, WEBPNP, WS, WSC, WSF, WSH, XAML, XDP, XIP, XNK

    Требуемое представление (только Windows)

    В поле Desired View укажите объем пространства, необходимого окну приложения, которое запускается для данного типа файла. Возможные значения 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. Введите .alsdk в поле Тип файла.

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

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

В результате в манифест пакета будет добавлен элемент Extension данного типа. Категория windows.fileTypeAssociation обозначает, что приложение обрабатывает файлы с расширением .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.fileTypeAssociation">
                <FileTypeAssociation Name="alsdk">
                  <DisplayName>SDK Sample File Type</DisplayName>
                  <Logo>images\logo.png</Logo>
                  <InfoTip>SDK Sample tip </InfoTip>
                  <EditFlags OpenIsSafe="true" />
                  <SupportedFileTypes>
                     <FileType ContentType="image/jpeg">.alsdk</FileType>
                  </SupportedFileTypes>
               </FileTypeAssociation>
            </Extension>
         </Extensions>
      </Application>
   </Applications>
</Package>

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

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

  • в представлении просмотра элементов, в контекстных меню и на ленте проводника;
  • на панели управления в разделе программ по умолчанию;
  • в средстве выбора файлов;
  • в результатах поиска на начальном экране.

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

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

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

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

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

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

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

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

       // The number of files received is eventArgs.detail.files.size
       // The first file is eventArgs.detail.files[0].name
   }
}

Примечание  

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

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

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

Замечания

Принимаемые вами файлы могут поступать из ненадежного источника. Рекомендуется проверять содержимое файла перед тем, как выполнять с ним какие-либо действия. Подробнее о проверке ввода см. в книге Writing Secure Code.

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

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

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

Понятия

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

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

Задачи

Запуск приложения по умолчанию для файла

Обработка активации URI

Рекомендации

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

Ссылки

Windows.Storage.StorageFile

Windows.UI.WebUI.WebUIFileActivatedEventArgs

WinJS.Application.onactivated