Язык: HTML | XAML

Как запустить приложение по умолчанию для файла (XAML)

Узнайте, как запускать приложение по умолчанию для файла. Многим приложениям необходимо работать с файлами, которые они не могут обрабатывать самостоятельно. Например, почтовые приложения получают файлы разных типов, и им требуется способ запуска этих файлов в обработчиках по умолчанию. Далее показано, как использовать API Windows.System.Launcher, чтобы запустить обработчик по умолчанию для файла, который приложение не может обработать самостоятельно.

Инструкции

Этап 1: Получение файла

Сначала получите объект Windows.Storage.StorageFile для данного файла.

Если файл включен в пакет вашего приложения, можно использовать свойство Package.InstalledLocation для получения объекта Windows.Storage.StorageFolder и метод Windows.Storage.StorageFolder.GetFileAsync для получения объекта StorageFile.

Если файл находится в известной папке, можно использовать свойства класса Windows.Storage.KnownFolders для получения StorageFolder и метод GetFileAsync для получения объекта StorageFile.

Этап 2: Запуск файла

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

ВариантМетодОписание
Запуск по умолчанию LaunchFileAsync(IStorageFile) Запуск указанного файла с помощью обработчика по умолчанию.
Запуск через пункт меню "Открыть с помощью" LaunchFileAsync(IStorageFile, LauncherOptions) Запуск указанного файла, позволяющий пользователю выбрать обработчик в диалоговом окне "Открыть с помощью".
Запуск с помощью рекомендованного резервного приложения LaunchFileAsync(IStorageFile, LauncherOptions) Запуск указанного файла с помощью обработчика по умолчанию. Если в системе не установлен обработчик, следует порекомендовать пользователю приложение в Магазине.
Запуск с использованием заданного представления оставшегося пространства LaunchFileAsync(IStorageFile, LauncherOptions) (только Windows)Запуск указанного файла с помощью обработчика по умолчанию. Укажите параметр, позволяющий остаться на экране после запуска, и запросите конкретный размер окна.

Windows 8.1:  LauncherOptions.DesiredRemainingView не поддерживается до выпусков Windows 8.1 и Windows Server 2012 R2.

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

 

Default launch

Чтобы запустить приложение по умолчанию, вызовите метод Windows.System.Launcher.LaunchFileAsync(IStorageFile). В следующем примере используется метод Windows.Storage.StorageFolder.GetFileAsync для запуска файла изображения test.png, который включен в пакет приложения.


async void DefaultLaunch()
{
   // Path to the file in the app package to launch
   string imageFile = @"images\test.png";

   var file = wait Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

   if (file != null)
   {
      // Launch the retrieved file
      var success = await Windows.System.Launcher.LaunchFileAsync(file);

      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }
   else
   {
      // Could not find file
   }
}

Open with launch

Вызовите метод Windows.System.Launcher.LaunchFileAsync(IStorageFile, LauncherOptions) с заданным для параметра LauncherOptions.DisplayApplicationPicker значением true, чтобы запустить приложение, которое пользователь выбирает в диалоговом окне Открыть с помощью.

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

Диалоговое окно "Открыть с помощью" для запуска PNG-файла. Диалоговое окно содержит флажок, который определяет, будет выбор пользователя применяться ко всем или только к данному PNG-файлу. Диалоговое окно содержит четыре параметра приложения для запуска файла и ссылку "Дополнительные параметры".

async void DefaultLaunch()
{
   // Path to the file in the app package to launch
   string imageFile = @"images\test.png";

   var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

   if (file != null)
   {
      // Set the option to show the picker
      var options = new Windows.System.LauncherOptions();
      options.DisplayApplicationPicker = true;

      // Launch the retrieved file
      bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }
   else
   {
      // Could not find file
   }
}

Launch with a recommended app fallback

В некоторых случаях у пользователя может быть не установлено приложение для обработки запускаемого файла. Тогда по умолчанию Windows предоставит пользователю ссылку для поиска подходящего приложения в Магазине. Если вы при этом хотите порекомендовать пользователю конкретное приложение, вы можете передать рекомендацию вместе с запускаемым файлом. Для этого вызовите метод Windows.System.Launcher.launchFileAsync(IStorageFile, LauncherOptions), указав в качестве значения параметра LauncherOptions.PreferredApplicationPackageFamilyName имя семейства пакета приложения Магазина, которое вы рекомендуете. Затем задайте для параметра LauncherOptions.PreferredApplicationDisplayName имя этого приложения. Windows будет использовать эту информацию, чтобы заменить общий параметр (поиск приложения в Магазине) конкретным параметром (приобретение рекомендованного приложения в Магазине).

Примечание  Чтобы рекомендовать приложение, необходимо настроить рекомендацию приложения в обоих этих параметрах. Настройка одного параметра без другого приведет к ошибке.
Диалоговое окно "Открыть с помощью" для запуска файла CONTOSO. Поскольку для формата CONTOSO на компьютере не установлен обработчик, диалоговое окно содержит параметр со значком Магазина и текстом, направляющим пользователя к правильному приложению в Магазине. Также диалоговое окно содержит ссылку "Дополнительные параметры".

async void DefaultLaunch()
{
   // Path to the file in the app package to launch
   string imageFile = @"images\test.contoso";

   // Get the image file from the package's image directory
   var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

   if (file != null)
   {
      // Set the recommended app
      var options = new Windows.System.LauncherOptions();
      options.PreferredApplicationPackageFamilyName = “Contoso.FileApp_8wknc82po1e”;
      options.PreferredApplicationDisplayName = “Contoso File App”;


      // Launch the retrieved file pass in the recommended app 
      // in case the user has no apps installed to handle the file
      bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }
   else
   {
      // Could not find file
   }
}


Запуск с использованием требуемого представления оставшегося пространства (только Windows)

Исходные приложения, вызывающие LaunchFileAsync, могут запрашивать разрешение остаться на экране после запуска файла. По умолчанию Windows пытается поровну поделить все доступное пространство между исходным приложением и конечным приложением, обрабатывающим файл. Исходные приложения могут использовать свойство DesiredRemainingView для указания операционной системе, что для окна приложения требуется больше или меньше доступного пространства. DesiredRemainingView также используется для указания системе, что исходному приложению не нужно оставаться на экране после запуска файла и что его пространство можно полностью занять конечным приложением. Это свойство указывает только предпочтительный размер окна для вызывающего приложения. Оно не задает условия для других приложений, которые могут находиться на экране в это же время.

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

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

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


async void DefaultLaunch()
{
   // Path to the file in the app package to launch
   string imageFile = @"images\test.png";

   var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

   if (file != null)
   {
      // Set the desired remaining view
      var options = new Windows.System.LauncherOptions();
      options.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseLess;

      // Launch the retrieved file
      bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }
   else
   {
      // Could not find file
   }
}


Замечания

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

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

Нельзя запускать типы файлов, содержащие код или сценарий, если они автоматически выполняются операционной системой, например файлы EXE, MSI и JS. Это ограничение защищает пользователей от потенциально вредоносных файлов, которые могут внести изменения в операционную систему. Вы можете использовать этот метод для запуска файлов, содержащих сценарий, если они выполняются приложением, которое изолирует этот сценарий. К таким файлам, например, относятся файлы типа DOCX. Приложения, подобные Microsoft Word, не позволяют сценариям в DOCX-файлах изменять операционную систему.

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

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

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

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

Задачи
Выполнение активации файла
Запуск приложения по умолчанию для универсального кода ресурса (URI)
Рекомендации
Руководство по типам файлов и URI
Ссылки
Windows.Storage.StorageFile
Windows.System.Launcher.LaunchFileAsync

 

 

Показ:
© 2015 Microsoft