Condividi tramite


ContactPostActivatedEventArgs Classe

Definizione

Fornisce i dati quando un'app viene attivata per pubblicare un contatto.

Javascript Questo tipo viene visualizzato come 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
Ereditarietà
Object Platform::Object IInspectable ContactPostActivatedEventArgs
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 post di contatto per gli ID Facebook.

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

Commenti

Windows 8.1 consente agli utenti di pubblicare i propri contatti dall'esperienza Contact Card o Windows Search. Implementando il contratto di post-attivazione del contatto, Windows può avviare l'app per pubblicare per l'utente.

Per ricevere le attivazioni successive, 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 "post". È quindi possibile specificare l'elemento "ServiceId" per specificare il nome di dominio del servizio a cui l'app può inviare, ad esempio "facebook.com".

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

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="post" DesiredView="useLess">
        <m2:ServiceId>facebook.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 post contatto. Quando l'app viene attivata, è possibile usare le informazioni sull'evento per identificare la post-attivazione ed estrarre i parametri che consentono di completare lo scenario post per l'utente.

Proprietà

Contact

Ottiene il contatto per il post.

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

ServiceUserId

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

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