Komunikacja między aplikacjami

Moduł AppFramework aplikacji AppStudio udostępnia wtyczkę InterAppCommunication używaną razem z komponentami odpowiedzialnymi za interakcje między aplikacją użytkownika i innymi aplikacjami. Zaleca się skonfigurowanie domyślnych aplikacji przed użyciem funkcjonalności wykorzystywanej do komunikacji z nimi. Aby korzystać z tej funkcjonalności, należy najpierw dołączyć poniższą instrukcję importu:

import ArcGIS.AppFramework.InterAppCommunication 1.0

Jako ilustracja tej funkcjonalności może służyć przykładowa aplikacja dostępna w aplikacji ArcGIS AppStudio lub w repozytorium GitHub udostępniającym przykładowe rozwiązania dla aplikacji AppStudio.

Adres e-mail

Przed wprowadzeniem aplikacji AppStudio w wersji 3.1 integracja wstępnie wypełnionych wiadomości e-mail z aplikacją użytkownika była najwygodniej realizowana za pomocą komponentu UrlInfo używającego właściwości queryParameters do przekazywania tematu i treści wiadomości e-mail za pośrednictwem adresu URL z odnośnikiem mailto. Poniższy przykładowy kod wykorzystuje komponent UrlInfo w celu utworzenia wiadomości e-mail zawierającej szczegóły systemu:

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

To podejście ma swoje ograniczenia, ponieważ nie pozwala ono na wysyłanie wiadomości e-mail do więcej niż jednego odbiorcy, nie obsługuje też ono załączników. Aplikacja AppStudio w wersji 3.1 wprowadziła komponent EmailComposer przeznaczony właśnie do otwierania wstępnie wypełnionych, roboczych wiadomości e-mail w domyślnym kliencie poczty elektronicznej.

Poniższy przykładowy kod ilustruje użycie komponentu EmailComposer w celu utworzenia wiadomości e-mail w tej samej postaci co w powyższym przykładzie wykorzystującym komponent UrlInfo, ale tym razem wysyłanej do wielu osób z wykorzystaniem właściwości cc i 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()
    }
}
Notatka:

Występują pewne różnice w działaniu komponentu EmailComposer na różnych platformach. Więcej informacji zawiera temat Dokumentacja interfejsu API — EmailCompser.


W tym temacie
  1. Adres e-mail