ContactCallActivatedEventArgs Classe

Definizione

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

Javascript Questo tipo viene visualizzato come WebUIContactCallActivatedEventArgs.

public ref class ContactCallActivatedEventArgs sealed : IActivatedEventArgs, IContactCallActivatedEventArgs
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.Activation.ContactActivatedEventsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ContactCallActivatedEventArgs final : IActivatedEventArgs, IContactCallActivatedEventArgs
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.Activation.ContactActivatedEventsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ContactCallActivatedEventArgs : IActivatedEventArgs, IContactCallActivatedEventArgs
Public NotInheritable Class ContactCallActivatedEventArgs
Implements IActivatedEventArgs, IContactCallActivatedEventArgs
Ereditarietà
Object Platform::Object IInspectable ContactCallActivatedEventArgs
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 è necessario gestire le attivazioni delle chiamate 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.Call)
        {
            IContactCallActivatedEventArgs callArgs = contactArgs as IContactCallActivatedEventArgs;

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

            if (callArgs.ServiceId == "telephone")
            {
                var phoneNumber = callArgs.ServiceUserId;
                //add calling logic for PSTN numbers
            }
            else if (callArgs.ServiceId == "skype.com")
            {
                var userId = callArgs.ServiceUserId;
                //add calling 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::Call())
        {
            auto callArgs{ contactArgs.as<Windows::ApplicationModel::Activation::ContactCallActivatedEventArgs>() };

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

            if (callArgs.ServiceId() == L"telephone")
            {
                auto phoneNumber{ callArgs.ServiceUserId() };
                // Add calling logic for PSTN numbers.
            }
            else if (callArgs.ServiceId() == L"skype.com")
            {
                auto userId{ callArgs.ServiceUserId() };
                // Add calling 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::Call)
        {
            auto callArgs = dynamic_cast<ContactCallActivatedEventArgs^>(contactArgs);

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

            if (callArgs->ServiceId == "telephone")
            {
                auto phoneNumber = callArgs->ServiceUserId;
                //add calling logic for PSTN numbers
            }
            else if (callArgs->ServiceId == "skype.com")
            {
                auto userId = callArgs->ServiceUserId;
                //add calling logic for Skype Ids
            }
        }
    }
}

Commenti

Windows 8.1 consente agli utenti di chiamare i contatti dall'esperienza Contact Card o Windows Search. Implementando il contratto di attivazione delle chiamate di contatto, Windows può avviare l'app per effettuare chiamate per l'utente.

Per ricevere le attivazioni delle chiamate, 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 "call". È quindi possibile specificare l'elemento "ServiceId" per specificare il tipo di chiamata al supporto. Ad esempio, se l'app gestisce le chiamate PSTN standard, è possibile specificare un "ServiceId" di "telefono". Se l'app gestisce la chiamata tramite un servizio basato sul Web, ad esempio Skype, è possibile specificare il nome di dominio di tale servizio, ad esempio "skype.com".

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

Nota

Per consentire a un utente di impostare l'app come app chiamante predefinita per i numeri PSTN, l'app deve supportare anche lo schema URI "tel".

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="call" DesiredView="useLess">
        <m2:ServiceId>telephone</m2:ServiceId>
        <m2:ServiceId>skype.com</m2:ServiceId>
      </m2:LaunchAction>
    </m2:ContactLaunchActions>
  </m2:Contact>
</m2:Extension>

Dopo aver registrato il manifesto, l'app può essere attivata per il contratto di chiamata di contatto. Quando l'app viene attivata, è possibile usare le informazioni sull'evento per identificare l'attivazione della chiamata ed estrarre i parametri che consentono di completare la chiamata per l'utente.

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

Proprietà

Contact

Ottiene il contatto per la chiamata.

Kind

Ottiene il tipo di attivazione.

PreviousExecutionState

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

ServiceId

Ottiene l'identificatore del servizio usato per la chiamata.

ServiceUserId

Ottiene l'identificatore utente del servizio usato per la chiamata.

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