Управление приложением на платформе Windows 8 и Windows 8.1

OSzone.net » Microsoft » Разработка приложений » Windows (до Windows 10) » Управление приложением на платформе Windows 8 и Windows 8.1
Автор: Зайнаб Хаким
Иcточник: MSDN Magazine
Опубликована: 27.06.2014

После выпуска Windows 8.1 в прошлом месяце разработчики все время задают один и тот же вопрос: «После того как я обновлю свое приложение до платформы Windows 8.1, что будет с клиентами, использующими Windows 8?» Хороший вопрос. И очень важный, потому что любой разработчик стремится охватить как можно больше пользователей. В данной статье я постараюсь ответить на этот вопрос и дать некоторые рекомендации относительно ваших приложений.

Windows 8.1 — это будущее приложений Магазина Windows

Как можно было понять из наших предыдущих публикаций  и новой документации для Центра разработки, мы рады рассказать о новых функциях Windows 8.1 с точки зрения разработчика приложений. Мы уделили особое внимание созданию потрясающих новых функций и улучшению существующих, взяв за основу мнения и отзывы пользователей и программистов. Если вы обновили свое приложение до версии Windows 8.1 или еще работаете над этим, то прекрасно знаете, что новая платформа позволит беспрецедентным образом улучшить ваши приложения. Если вы еще не приступали к этому, обратитесь к руководству «Миграция приложений Магазина Windows на Windows 8.1», где подробно описана процедура обновления.

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

Мы предоставляем вам возможность продолжать работу над приложением для платформы Windows 8.1 и при этом поддерживать пользователей на Windows 8. Вы просто обновляете пакет для Windows 8.1, и в Магазине открывается доступ к обеим версиям, каждая из которых предназначена для соответствующей ОС Windows.

После публикации пакетов для Windows 8.1 вы по-прежнему будете поддерживать пользователей Windows 8, исправляя ошибки и выпуская небольшие обновления. Магазин не требует публикации дальнейших обновлений пакета для Windows 8, но это хороший способ порадовать пользователей вашего приложения. Например, используемый вами сторонний сервис поменял API, что нарушило функциональность приложения. В этом случае вы, конечно же, постараетесь сделать так, чтобы приложение по-прежнему стабильно работало на Windows 8. Это означает, что вам придется выпустить исправление, учитывающее изменение API. Или же вы должны выпустить обновление, уведомляющее пользователя о сложившейся ситуации и рекомендующее обновить ОС до Windows 8.1, чтобы получить последнюю версию приложения. Выбор вариантов обновления приложения и поддержки клиентов остается за вами.

Еще один возможный сценарий — размещение приложения Windows 8.1 в качестве нового приложения. Мы не рекомендуем использовать этот подход, поскольку пользователи не смогут автоматически обновить свою версию и вы потеряете все отзывы, оценки и рейтинги. Если в вашем приложении появились новые платные функции, попробуйте организовать оплату через встроенные покупки.

Изменение целевой платформы приложения Windows 8.1

После того как будет выбран способ управления и поддержки приложений Windows 8 и Windows 8.1, вы должны изменить целевую платформу приложения. Чтобы перевести приложение на платформу Windows 8.1, выполните следующие шаги:

  1. Скопируйте или создайте новую ветку решения, чтобы получить разные версии для Windows 8 и Windows 8.1.
  2. Измените целевую платформу проектов в решении для Windows 8.1.
  3. Исправьте все появившиеся ошибки, связанные с путями к файлам и расширениям SDK.
  4. Обновите код, чтобы воспользоваться новыми API и функциями Windows 8.1.
  5. При желании внесите изменения и исправления в решение для Windows 8.

Эти шаги подробно описаны в статье «Изменение целевой платформы приложения Магазина Windows на Windows 8.1». Кроме того, их выполнение показано в видеоролике от One Dev Minute.


Загрузите видеоролик для просмотра в предпочитаемом медиапроигрывателе. 
MP4 высокого качества
 |  MP4 низкого качества

Управление пакетами в Магазине

Когда целевая платформа приложения будет изменена на Windows 8.1, вам нужно отправить пакеты в Магазин. Кроме того, в Магазине можно разместить любые обновления пакетов для Window 8. (Для размещения нового приложения Windows 8.1 просто выполните его отправку.)

Завершив создание пакетов в Visual Studio, вы сможете загрузить их в информационную панель Магазина Windows в качестве нового выпуска приложения. Все сведения из текущего описания приложения Windows 8.1 будут скопированы в новое, чтобы вы могли быстрее приступить к работе. Вы можете просмотреть эти сведения и внести нужные изменения. Кроме того, можно подкорректировать описание приложения Windows 8 (например, рассказать пользователям о новых функциях, доступных в системе Windows 8.1).

Важно! Номер версии пакета для Windows 8.1 должен быть выше номера версии текущего и будущих пакетов для Windows 8. Если вы используете Visual Studio 2013, вам не нужно самостоятельно менять номера пакетов. Программа автоматически повысит версию таким образом, что вы сможете при необходимости обновлять версии приложения для Windows 8. Если вы создаете пакеты приложений вручную, мы рекомендуем повысить вспомогательный номер версии в пакете для Windows 8.1. В результате у вас останется достаточно лишних номеров, чтобы продолжить обновлять пакеты для Windows 8.

Помните, что даже если пакет для Windows 8 не будет отправлен, при публикации приложения для Windows 8.1 предыдущий пакет с поддержкой Windows 8 будет по-прежнему доступен для пользователей этой ОС. В настоящее время невозможно полностью отказаться от поддержки пользователей Windows 8, даже если вы не планируете обновлять приложения для этой ОС.

Чтобы получить более подробную информацию о публикации приложений в Магазине Windows, обратитесь к статье « Добавление пакетов Windows 8.1 в существующее приложение» в Центре разработчиков.

Подведем итоги

Windows 8.1 предлагает новые возможности для улучшения выпущенных приложений и создания новых. Кроме того, поскольку в Магазине осуществляется поддержка приложений как для Windows 8, так и для Windows 8.1, вы должны предоставить своим пользователям подходящие варианты обновления. Загляните в наш раздел с обновленными примерами — и приступайте к программированию. Надеюсь увидеть ваши новые и обновленные приложения!

Иан ЛеГроу (Ian LeGrow), Group Program Manager, Windows

function ShowContactCard(evt) {
    var ContactsNS = Windows.ApplicationModel.Contacts;
    var emailAddress = document.getElementById("inputEmailAddress").value;
    var phoneNumber = document.getElementById("inputPhoneNumber").value;

    // Создаем входной объект contact для вызова ContactManager.showContactCard()
    var contact = new ContactsNS.Contact();

 // Предоставляем адрес электронной почты
    var email = newContactsNS.ContactEmail();
    email.address = emailAddress;
    contact.emails.append(email);

    // Предоставляем телефонный номер
    var phone = new ContactsNS.ContactPhone();
    phone.number = phoneNumber;
    contact.phones.append(phone);

    // Получаем прямоугольное выделения нажатой кнопки для отображения карточки контактов
    var boundingRect = evt.srcElement.getBoundingClientRect();
    var selectionRect = { x: boundingRect.left, y: boundingRect.top, width: boundingRect.width, height: boundingRect.height };

    ContactsNS.ContactManager.showContactCard(contact, selectionRect, Windows.UI.Popups.Placement.default);
  }
})

C#

/// Это обработчик нажатия для кнопки 'Show contact card'
/// <param name="sender"></param>
/// <param name="e"></param>
void ShowContactCardButton_Click(object sender, RoutedEventArgs e)
{
  // Создаем входной объект contact
  Contact contact = new Contact();
ContactEmail email = new ContactEmail();
  email.Address = this.EmailAddress.Text;
  contact.Emails.Add(email);
ContactPhone phone = new ContactPhone();
  phone.Number = this.PhoneNumber.Text;
  contact.Phones.Add(phone);
// Получаем прямоугольное выделение нажатой кнопки для отображения карточки контактов
  Rect rect = Helper.GetElementRect(sender as FrameworkElement);
ContactManager.ShowContactCard(contact, rect, Windows.UI.Popups.Placement.Default);
}

Обработка действий карточки контактов конечным приложением

Как мы уже видели ранее, карточка контактов — это отправная точка для таких коммуникационных действий, как сообщение, звонок, электронное письмо, видео и т. п. Если ваше приложение предоставляет функциональность для обработки одного или нескольких подобных действий, оно становится для них конечным приложением. Если ваше приложение является предпочитаемым для сообщения или звонка, пользователь может запускать его из карточки контакта или средства «Поиск контактов Windows 8.1». Чтобы получить конечное приложение, сначала необходимо зарегистрировать манифесты для каждого действия, поддерживаемого вашим приложением, в категории расширений «windows.contact». Теперь приложение можно активировать для контракта с поддерживаемым действием.

В примере ниже показана регистрация манифеста для действия «Звонок» с помощью телефонного номера или идентификатора Skype.

<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
<m2:Extension Category="windows.contact">
<m2:Contact>
 <m2:ContactLaunchActions>
   <m2:LaunchAction Verb="call" DesiredView="useLess">
      <m2:ServiceId>telephone</m2:ServiceId>
   </m2:LaunchAction>
  <m2:LaunchAction Verb="call" DesiredView="useLess">
     <m2:ServiceId>skype.com</m2:ServiceId>
  </m2:LaunchAction>
 </m2:ContactLaunchActions>
</m2:Contact>
</m2:Extension>

Активацию действия можно обнаружить, изучая ActivationKind в событии активации. ActivationKind — это то же самое, что и Windows.ApplicationModel.Activation.ActivationKind.contact для действий с контактами. Используйте свойство verb в аргументах события, чтобы определить тип действия с контактом. Используйте свойство serviceId в аргументах события, чтобы определить сервис, который должно использовать ваше приложение для выполнения действия (например, звонка через Skype). Приложение получает объект contact через аргументы события активации. Объект contact всегда содержит базовую информацию, необходимую для выполнения действия (например, телефонный номер для звонка). Кроме того, он содержит дополнительные сведения о контакте, например, имя и фотографию. Приложение может изучить объект contact на предмет наличия этих опциональных параметров и, если они есть, улучшить взаимодействие пользователя с приложением.

Ниже представлен фрагмент кода, демонстрирующий, как обнаруживать активацию действия «Звонок» для телефонного номера и извлекать параметры phoneNumber, name и thumbnail в JavaScript.

function activatedHandler(e) {
  if (e.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.contact) {
    if (e.detail.verb === Windows.ApplicationModel.Contacts.ContactLaunchActionVerbs.Call) {
      if (e.detail.serviceId == "telephone") {
        var phoneNumberToCall = e.detail.serviceUserId;
        var contactName = e.detail.contact.displayName;
        var contactThumbnail = e.detail.contact.thumbnail;
      }
    }
  }
}

Чтобы получить информацию об активации приложения для действий с контактом, обратитесь к примеру SDK «Обработка действий с контактами».

В заключение

Сегодня мы используем множество различных приложений — для социальных сетей, учебы, средства управления событиями, программы для отслеживания дней рождения, фитнес-приложения, социальные игры и т. п., которые применяют контакты и взаимодействуют с людьми. Если у вас имеется такое приложение в Магазине (или вы его разрабатываете), подумайте о том, как с помощью карточек контактов улучшить социальный фактор этого приложения и сделать его более привлекательным. Соединяйте свои приложения с приложением «Люди» через карточки контактов Windows, предоставляя лишь адрес электронной почты или телефонный номер либо же полную информацию. С помощью карточки контактов можно осуществлять быстрый поиск по агрегированной информации всех контактов прямо из вашего приложения. Это замечательная отправная точка, откуда пользователи могут с легкостью инициировать отправку электронного письма или сообщения, совершение звонка и т. п. с помощью предпочитаемых приложений для коммуникации. Предоставьте всю тяжелую работу Windows и исходным приложениям, а сами сосредоточьтесь на главных преимуществах своего приложения.

Во второй части этой статьи мы рассмотрим главное хранилище данных для пользователей — «Календарь» — и покажем, как упростилась интеграция приложений с пользовательскими календарями благодаря новому контракту «Календарь».


Ссылка: http://www.oszone.net/24508/