다음을 통해 공유


ContactPostActivatedEventArgs 클래스

정의

연락처를 게시하기 위해 앱이 활성화될 때 데이터를 제공합니다.

자바 스크립트 이 형식은 WebUIContactPostActivatedEventArgs로 표시됩니다.

public ref class ContactPostActivatedEventArgs sealed : IActivatedEventArgs, IContactPostActivatedEventArgs
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.Activation.ContactActivatedEventsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ContactPostActivatedEventArgs final : IActivatedEventArgs, IContactPostActivatedEventArgs
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.Activation.ContactActivatedEventsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ContactPostActivatedEventArgs : IActivatedEventArgs, IContactPostActivatedEventArgs
Public NotInheritable Class ContactPostActivatedEventArgs
Implements IActivatedEventArgs, IContactPostActivatedEventArgs
상속
Object Platform::Object IInspectable ContactPostActivatedEventArgs
특성
구현

Windows 요구 사항

디바이스 패밀리
Windows Desktop Extension SDK (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (v1.0에서 도입되었습니다.)

예제

다음은 Facebook ID에 대한 연락처 사후 활성화를 처리하는 데 필요한 코드의 예입니다.

protected override void OnActivated(IActivatedEventArgs args)
{
    if (args.Kind == ActivationKind.Contact)
    {
        var contactArgs = args as IContactActivatedEventArgs;
        if (contactArgs.Verb == Windows.ApplicationModel.Contacts.ContactLaunchActionVerbs.Post)
        {
            IContactPostActivatedEventArgs postArgs = contactArgs as IContactPostActivatedEventArgs;

            //get contact display info
            var contactName = postArgs.Contact.DisplayName;
            var contactThumbnail = postArgs.Contact.Thumbnail;

            if (postArgs.ServiceId == "facebook.com")
            {
                var userId = postArgs.ServiceUserId;
                //add posting logic for Facebook 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::Post())
        {
            auto postArgs{ contactArgs.as<Windows::ApplicationModel::Activation::ContactPostActivatedEventArgs>() };

            // Get contact display info.
            auto contactName{ postArgs.Contact().DisplayName() };
            auto contactThumbnail{ postArgs.Contact().Thumbnail() };

            if (postArgs.ServiceId() == L"facebook.com")
            {
                auto userId = postArgs.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::Post)
        {
            auto postArgs = dynamic_cast<ContactPostActivatedEventArgs^>(contactArgs);

            //get contact display info
            auto contactName = postArgs->Contact->DisplayName;
            auto contactThumbnail = postArgs->Contact->Thumbnail;

            if (postArgs->ServiceId == "facebook.com")
            {
                auto userId = postArgs->ServiceUserId;
                //add posting logic for Facebook Ids
            }
        }
    }
}

설명

Windows 8.1 통해 사용자는 연락처 카드 또는 Windows Search 환경에서 연락처에 게시할 수 있습니다. Windows는 연락처 사후 활성화 계약을 구현하여 사용자를 위해 게시할 앱을 시작할 수 있습니다.

사후 활성화를 받으려면 앱이 매니페스트에서 "windows.contact" 확장 범주에 등록해야 합니다. 이 확장에서 "Post"와 같은 "동사" 특성이 있는 "LaunchAction" 요소를 포함해야 합니다. 그런 다음 "ServiceId" 요소를 지정하여 앱이 게시할 수 있는 서비스의 도메인 이름(예: "facebook.com")을 지정할 수 있습니다.

여러 앱이 이 계약에 등록되어 있는 경우 사용자는 게시 처리를 위한 기본값으로 앱 중 하나를 선택할 수 있습니다.

매니페스트 등록의 예는 다음과 같습니다.

<m2:Extension Category="windows.contact" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
  <m2:Contact>
    <m2:ContactLaunchActions>
      <m2:LaunchAction Verb="post" DesiredView="useLess">
        <m2:ServiceId>facebook.com</m2:ServiceId>
      </m2:LaunchAction>
    </m2:ContactLaunchActions>
  </m2:Contact>
</m2:Extension>

매니페스트에 등록하면 연락처 사후 계약에 대해 앱을 활성화할 수 있습니다. 앱이 활성화되면 이벤트 정보를 사용하여 사후 활성화를 식별하고 사용자의 게시 시나리오를 완료하는 데 도움이 되는 매개 변수를 추출할 수 있습니다.

속성

Contact

게시물에 대한 연락처를 가져옵니다.

Kind

활성화 유형을 가져옵니다.

PreviousExecutionState

활성화되기 전에 앱의 실행 상태를 가져옵니다.

ServiceId

게시물에 사용되는 서비스의 식별자를 가져옵니다.

ServiceUserId

게시물에 사용되는 서비스의 사용자 식별자를 가져옵니다.

SplashScreen

시작 화면에서 활성화된 앱으로의 전환에 대한 정보를 제공하는 시작 화면 개체를 가져옵니다.

Verb

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

적용 대상

추가 정보