Bagikan melalui


ContactMessageActivatedEventArgs Kelas

Definisi

Menyediakan data saat aplikasi diaktifkan untuk mengirim pesan ke kontak.

Javascript Jenis ini muncul sebagai 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
Warisan
Object Platform::Object IInspectable ContactMessageActivatedEventArgs
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows Desktop Extension SDK (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (diperkenalkan dalam v1.0)

Contoh

Berikut adalah contoh kode yang Anda butuhkan untuk menangani aktivasi pesan kontak untuk nomor PSTN dan Id 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
            }
        }
    }
}

Keterangan

Windows 8.1 memungkinkan pengguna mengirim pesan kepada kontak mereka dari pengalaman Kartu Kontak atau Windows Search. Dengan menerapkan kontrak aktivasi pesan kontak, Windows dapat meluncurkan aplikasi Anda untuk mengirim pesan bagi pengguna.

Untuk menerima aktivasi pesan, aplikasi Anda harus mendaftar untuk kategori ekstensi "windows.contact" dalam manifesnya. Di bawah ekstensi ini, Anda harus menyertakan elemen "LaunchAction" dengan atribut "Kata Kerja" yang sama dengan "pesan." Anda kemudian dapat menentukan elemen "ServiceId" untuk menentukan jenis pesan yang Anda dukung. Misalnya, jika aplikasi Anda menangani pesan teks standar, Anda dapat menentukan "ServiceId" dari "telepon." Jika aplikasi Anda menangani pesan melalui layanan berbasis web, seperti Skype, Anda dapat menentukan nama domain layanan tersebut, misalnya "skype.com."

Jika beberapa aplikasi telah mendaftar untuk kontrak ini, pengguna dapat memilih salah satunya sebagai default mereka untuk menangani pesan.

Berikut adalah contoh untuk pendaftaran manifes.

<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>

Setelah mendaftar dalam manifes, aplikasi Anda dapat diaktifkan untuk kontrak pesan kontak. Saat aplikasi diaktifkan, Anda dapat menggunakan informasi peristiwa untuk mengidentifikasi aktivasi pesan dan mengekstrak parameter yang membantu Anda menyelesaikan skenario olahpesan untuk pengguna.

Untuk informasi tentang cara menangani aktivasi aplikasi melalui tindakan kontak, lihat Mulai Cepat: Menangani tindakan kontak .

Properti

Contact

Mendapatkan kontak untuk pesan tersebut.

Kind

Mendapatkan jenis aktivasi.

PreviousExecutionState

Mendapatkan status eksekusi aplikasi sebelum diaktifkan.

ServiceId

Mendapatkan pengidentifikasi layanan yang digunakan untuk pesan.

ServiceUserId

Mendapatkan pengidentifikasi pengguna dari layanan yang digunakan untuk pesan.

SplashScreen

Mendapatkan objek layar splash, yang menyediakan informasi tentang transisi dari layar splash ke aplikasi yang diaktifkan.

Verb

Mendapatkan tindakan yang akan dilakukan.

Berlaku untuk

Lihat juga