ContactMessageActivatedEventArgs 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
연락처에 메시지를 보내기 위해 앱이 활성화될 때 데이터를 제공합니다.
자바 스크립트 이 형식은 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에서 도입되었습니다.)
|
예제
다음은 PSTN 번호 및 Skype ID에 대한 연락처 메시지 활성화를 처리하는 데 필요한 코드의 예입니다.
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 Search 환경에서 연락처에 메시지를 보낼 수 있습니다. Windows는 연락처 메시지 활성화 계약을 구현하여 앱을 시작하여 사용자에게 메시지를 보낼 수 있습니다.
메시지 활성화를 받으려면 앱이 매니페스트의 "windows.contact" 확장 범주에 등록해야 합니다. 이 확장에서 "Verb" 특성이 "message"와 같은 "LaunchAction" 요소를 포함해야 합니다. 그런 다음 "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 |
수행할 작업을 가져옵니다. |