Comunicazione tra app

L'AppFramework di AppStudio fornisce un plug-in InterAppCommunication , utilizzato per i componenti che controllano l'interazione tra la propria app e le altre. Si consiglia di configurare le app predefinite prima di utilizzare la funzionalità per comunicare con esse. Per utilizzare questa funzionalità, è necessario includere prima la seguente istruzione di importazione:

import ArcGIS.AppFramework.InterAppCommunication 1.0

Per avere un esempio di questa funzionalità, servirsi dell'app di esempio disponibile su ArcGIS AppStudio o nel repository GitHub degli esempi di AppStudio.

E-mail

Prima di AppStudio 3.1, l'integrazione di un'e-mail precompilata nell’app è stata eseguita al meglio con il componente UrlInfo, utilizzando la proprietà queryParameters per trasmettere un oggetto e un corpo di un'email tramite un URL mailto. Il seguente esempio di codice utilizza il componente UrlInfo per creare un’e-mail contenente i dettagli del sistema:

Button {
    text: "Generate Email"
    
    onClicked: {
        var urlInfo = AppFramework.urlInfo("mailto:example@example.com"), //Instantiates UrlInfo with an email address
            deviceDetails = [ //Collects information about both the device and app
                "%1: %2 (%3)".arg("Device OS").arg(Qt.platform.os).arg(AppFramework.osVersion),
                "%1: %2".arg("Device Locale").arg(Qt.locale().name),
                "%1: %2".arg("App Version").arg(app.info.version),
                "%1: %2".arg("AppStudio Version").arg(AppFramework.version),
            ];
        urlInfo.queryParameters = { //Uses queryParameters property to populate email subject and body
            "subject": "%1 %2".arg("Feedback for").arg(app.info.title),
            "body": "\n\n%1".arg(deviceDetails.join("\n"))
        };
        Qt.openUrlExternally(urlInfo.url); //Uses Qt framework to open constructed UrlInfo
    }
}

Questo approccio è limitato, in quanto non consente di indirizzare l'e-mail a più di un destinatario o di supportare allegati. AppStudio 3.1 ha introdotto un componente EmailComposer, progettato specificamente per aprire una bozza di e-mail precompilata sul client e-mail predefinito del dispositivo.

Nell'esempio di codice seguente viene illustrato come utilizzare il componente EmailComposer per creare lo stesso modulo dell'esempio UrlInfo precedente, questa volta inviato a più persone utilizzando le proprietà cc e bcc.

EmailComposer {
    id: emailcomposer
    to: "example@example.com"
    cc: ["example2@example.com", "example3@example.com"]
    bcc: "example4@example.com"
    subject: "Feedback for " + app.info.title
    body:
        "Device OS:" + Qt.platform.os + AppFramework.osVersion + "<p>" +
        "Device Locale:" + Qt.locale().name + "<p>" +
        "App Version:" + app.info.version + "<p>" +
        "AppStudio Version:" + AppFramework.version
    html: true
}

Button {
    id: openEmailButton
    text: qsTr("Generate Email")
    onClicked: {
        emailcomposer.show()
    }
}
Nota:

il componente EmailComposer ha un numero di incoerenze nel comportamento tra piattaforme. Per ulteriori informazioni, vedere Riferimento API per EmailComposer.


In questo argomento
  1. E-mail