다음을 통해 공유


ContactMessageActivatedEventArgs 클래스

정의

연락처에 메시지를 보내기 위해 앱이 활성화될 때 데이터를 제공합니다.

자바 스크립트 이 형식은 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
상속
Object Platform::Object IInspectable ContactMessageActivatedEventArgs
특성
구현

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

수행할 작업을 가져옵니다.

적용 대상

추가 정보