Condividi tramite


ContactMessageActivatedEventArgs Classe

Definizione

Fornisce dati quando un'app viene attivata per inviare un messaggio a un contatto.

Javascript Questo tipo viene visualizzato come 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
Ereditarietà
Object Platform::Object IInspectable ContactMessageActivatedEventArgs
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.10240.0)
API contract
Windows.ApplicationModel.Activation.ContactActivatedEventsContract (è stato introdotto in v1.0)

Esempio

Ecco un esempio del codice che devi gestire le attivazioni dei messaggi di contatto per i numeri PSTN e gli 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
            }
        }
    }
}

Commenti

Windows 8.1 consente agli utenti di inviare messaggi ai propri contatti dall'esperienza Contact Card o Windows Search. Implementando il contratto di attivazione dei messaggi di contatto, Windows può avviare l'app per inviare messaggi per l'utente.

Per ricevere le attivazioni dei messaggi, l'app deve registrarsi per la categoria di estensione "windows.contact" nel manifesto. In questa estensione è necessario includere un elemento "LaunchAction" con l'attributo "Verb" uguale a "message". È quindi possibile specificare l'elemento "ServiceId" per specificare il tipo di messaggistica supportato. Ad esempio, se l'app gestisce messaggi di testo standard, è possibile specificare un "ServiceId" di "telefono". Se l'app gestisce la messaggistica tramite un servizio basato sul Web, ad esempio Skype, è possibile specificare il nome di dominio del servizio, ad esempio "skype.com".

Se per questo contratto sono state registrate più app, l'utente può sceglierne uno come impostazione predefinita per la gestione dei messaggi.

Ecco un esempio per la registrazione del manifesto.

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

Dopo aver eseguito la registrazione nel manifesto, l'app può essere attivata per il contratto di messaggio di contatto. Quando l'app viene attivata, è possibile usare le informazioni sull'evento per identificare l'attivazione dei messaggi ed estrarre i parametri che consentono di completare lo scenario di messaggistica per l'utente.

Per informazioni su come gestire l'attivazione dell'app tramite azioni di contatto, vedere Guida introduttiva: Gestione delle azioni di contatto .

Proprietà

Contact

Ottiene il contatto per il messaggio.

Kind

Ottiene il tipo di attivazione.

PreviousExecutionState

Ottiene lo stato di esecuzione dell'app prima dell'attivazione.

ServiceId

Ottiene l'identificatore del servizio utilizzato per il messaggio.

ServiceUserId

Ottiene l'identificatore utente del servizio utilizzato per il messaggio.

SplashScreen

Ottiene l'oggetto schermata iniziale, che fornisce informazioni sulla transizione dalla schermata iniziale all'app attivata.

Verb

Ottiene l'azione da eseguire.

Si applica a

Vedi anche