ContactMessageActivatedEventArgs Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет данные при активации приложения для отправки сообщения контакту.
Javascript Этот тип отображается как WebUIContactMessageActivatedEventArgs.
public ref class ContactMessageActivatedEventArgs sealed : IActivatedEventArgs, IContactMessageActivatedEventArgs
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.Activation.ContactActivatedEventsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ContactMessageActivatedEventArgs final : IActivatedEventArgs, IContactMessageActivatedEventArgs
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.Activation.ContactActivatedEventsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ContactMessageActivatedEventArgs : IActivatedEventArgs, IContactMessageActivatedEventArgs
Public NotInheritable Class ContactMessageActivatedEventArgs
Implements IActivatedEventArgs, IContactMessageActivatedEventArgs
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows Desktop Extension SDK (появилось в 10.0.10240.0)
|
API contract |
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (появилось в v1.0)
|
Примеры
Ниже приведен пример кода, необходимого для обработки активации контактных сообщений для номеров ТСОП и идентификаторов Skype.
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Contact)
{
var contactArgs = args as IContactActivatedEventArgs;
if (contactArgs.Verb == Windows.ApplicationModel.Contacts.ContactLaunchActionVerbs.Message)
{
IContactMessageActivatedEventArgs messageArgs = contactArgs as IContactMessageActivatedEventArgs;
//get contact display info
var contactName = messageArgs.Contact.DisplayName;
var contactThumbnail = messageArgs.Contact.Thumbnail;
if (messageArgs.ServiceId == "telephone")
{
var phoneNumber = messageArgs.ServiceUserId;
//add messaging logic for PSTN numbers
}
else if (messageArgs.ServiceId == "skype.com")
{
var userId = messageArgs.ServiceUserId;
//add messaging logic for Skype Ids
}
}
}
}
void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const& args)
{
if (args.Kind() == Windows::ApplicationModel::Activation::ActivationKind::Contact)
{
auto contactArgs{ args.as<Windows::ApplicationModel::Activation::IContactActivatedEventArgs>() };
if (contactArgs.Verb() == Windows::ApplicationModel::Contacts::ContactLaunchActionVerbs::Message())
{
auto messageArgs{ contactArgs.as<Windows::ApplicationModel::Activation::ContactMessageActivatedEventArgs>() };
// Get contact display info.
auto contactName{ messageArgs.Contact().DisplayName() };
auto contactThumbnail{ messageArgs.Contact().Thumbnail() };
if (messageArgs.ServiceId() == L"telephone")
{
auto phoneNumber = messageArgs.ServiceUserId();
// Add messaging logic for PSTN numbers.
}
else if (messageArgs.ServiceId() == L"skype.com")
{
auto userId = messageArgs.ServiceUserId();
// Add messaging logic for Skype Ids.
}
}
}
}
void App::OnActivated(IActivatedEventArgs^ args)
{
if (args->Kind == ActivationKind::Contact)
{
auto contactArgs = dynamic_cast<IContactActivatedEventArgs^>(args);
if (contactArgs->Verb == Windows::ApplicationModel::Contacts::ContactLaunchActionVerbs::Message)
{
auto messageArgs = dynamic_cast<ContactMessageActivatedEventArgs^>(contactArgs);
//get contact display info
auto contactName = messageArgs->Contact->DisplayName;
auto contactThumbnail = messageArgs->Contact->Thumbnail;
if (messageArgs->ServiceId == "telephone")
{
auto phoneNumber = messageArgs->ServiceUserId;
//add messaging logic for PSTN numbers
}
else if (messageArgs->ServiceId == "skype.com")
{
auto userId = messageArgs->ServiceUserId;
//add messaging logic for Skype Ids
}
}
}
}
Комментарии
Windows 8.1 позволяет пользователям отправлять сообщения своим контактам из карточки контакта или интерфейса Поиска Windows. Реализуя контракт активации сообщения контакта, Windows может запустить приложение для отправки сообщений для пользователя.
Чтобы получать активации сообщений, приложение должно зарегистрироваться для категории расширения "windows.contact" в манифесте. В этом расширении необходимо включить элемент LaunchAction с атрибутом Verb, равным message. Затем можно указать элемент ServiceId, чтобы указать тип поддерживаемого обмена сообщениями. Например, если приложение обрабатывает стандартные текстовые сообщения, можно указать ServiceId для параметра "телефон". Если приложение обрабатывает обмен сообщениями через веб-службу, например Skype, можно указать доменное имя этой службы, например "skype.com".
Если для этого контракта зарегистрировано несколько приложений, пользователь может выбрать одно из них по умолчанию для обработки сообщений.
Ниже приведен пример регистрации манифеста.
<m2:Extension Category="windows.contact" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
<m2:Contact>
<m2:ContactLaunchActions>
<m2:LaunchAction Verb="message" DesiredView="useLess">
<m2:ServiceId>telephone</m2:ServiceId>
</m2:LaunchAction>
<m2:LaunchAction Verb="message" DesiredView="useLess">
<m2:ServiceId>skype.com</m2:ServiceId>
</m2:LaunchAction>
</m2:ContactLaunchActions>
</m2:Contact>
</m2:Extension>
После регистрации в манифесте приложение можно активировать для контракта сообщения контакта. При активации приложения можно использовать сведения о событии для идентификации активации сообщения и извлечения параметров, которые помогут выполнить сценарий обмена сообщениями для пользователя.
Сведения о том, как обрабатывать активацию приложений с помощью действий контакта, см. в разделе Краткое руководство. Обработка действий контактов .
Свойства
Contact |
Возвращает контакт для сообщения. |
Kind |
Возвращает тип активации. |
PreviousExecutionState |
Возвращает состояние выполнения приложения до его активации. |
ServiceId |
Возвращает идентификатор службы, используемой для сообщения. |
ServiceUserId |
Возвращает идентификатор пользователя службы, используемой для сообщения. |
SplashScreen |
Возвращает объект экрана-заставки, предоставляющий сведения о переходе с экрана-заставки на активированное приложение. |
Verb |
Возвращает выполняемую операцию. |