ContactMessageActivatedEventArgs Classe

Définition

Fournit des données lorsqu’une application est activée pour envoyer un message à un contact.

Javascript Ce type apparaît sous la forme 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
Héritage
Object Platform::Object IInspectable ContactMessageActivatedEventArgs
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows Desktop Extension SDK (introduit dans 10.0.10240.0)
API contract
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (introduit dans v1.0)

Exemples

Voici un exemple de code dont vous avez besoin pour gérer les activations de messages de contact pour les numéros RTC et les 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
            }
        }
    }
}

Remarques

Windows 8.1 permet aux utilisateurs d’envoyer des messages à leurs contacts à partir de la carte de visite ou de l’expérience Windows Search. En implémentant le contrat d’activation des messages de contact, Windows peut lancer votre application pour envoyer des messages à l’utilisateur.

Pour recevoir des activations de messages, votre application doit s’inscrire à la catégorie d’extension « windows.contact » dans son manifeste. Sous cette extension, vous devez inclure un élément « LaunchAction » avec l’attribut « Verb » égal à « message ». Vous pouvez ensuite spécifier l’élément « ServiceId » pour spécifier le type de messagerie que vous prenez en charge. Par exemple, si votre application gère les messages texte standard, vous pouvez spécifier un « ServiceId » de « téléphone ». Si votre application gère la messagerie via un service web, comme Skype, vous pouvez spécifier le nom de domaine de ce service, par exemple « skype.com ».

Si plusieurs applications se sont inscrites pour ce contrat, l’utilisateur peut choisir l’une d’elles par défaut pour la gestion des messages.

Voici un exemple d’inscription de manifeste.

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

Une fois que vous vous êtes inscrit dans votre manifeste, votre application peut être activée pour le contrat de message de contact. Lorsque votre application est activée, vous pouvez utiliser les informations d’événement pour identifier l’activation du message et extraire les paramètres qui vous aident à terminer le scénario de messagerie pour l’utilisateur.

Pour plus d’informations sur la gestion de l’activation d’application par le biais d’actions de contact, consultez Démarrage rapide : Gestion des actions de contact .

Propriétés

Contact

Obtient le contact pour le message.

Kind

Obtient le type d’activation.

PreviousExecutionState

Obtient l’état d’exécution de l’application avant son activation.

ServiceId

Obtient l’identificateur du service utilisé pour le message.

ServiceUserId

Obtient l’identificateur utilisateur du service utilisé pour le message.

SplashScreen

Obtient l’objet d’écran de démarrage, qui fournit des informations sur la transition de l’écran de démarrage à l’application activée.

Verb

Obtient l’action à effectuer.

S’applique à

Voir aussi