AppStudio AppFramework содержит надстройку InterAppCommunication, которая используется для компонентов, управляющих взаимодействием между вашим и другими приложениями. Рекомендует задавать приложения, используемые по умолчанию, перед применением функций взаимодействия между ними. Чтобы использовать эту функциональность, вы сначала должны включить следующие утверждения импорта:
import ArcGIS.AppFramework.InterAppCommunication 1.0
Пример этой функции можно посмотреть в образце приложения, доступном в ArcGIS AppStudio, или в образцах AppStudio в репозитории GitHub.
В версиях AppStudio ниже 3.1 интеграция в приложение заготовленного email проще всего выполнялась с помощью компонента UrlInfo, использующего свойство queryParameters для передачи темы и текста электронного сообщения по URL-адресу. Следующий пример кода использует компонент UrlInfo для создания email, содержащего сведения о системе:
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
}
}
Этот метод недостаточно эффективен, поскольку не позволяет направлять email нескольким получателям и не поддерживает вложения. В AppStudio 3.1 представлен компонент EmailComposer, предназначенный для того, чтобы открывать готовые черновики электронных сообщений в почтовом клиенте устройства.
В следующем примере кода демонстрируется использование компонента EmailComposer для создания формы электронного сообщения, как в примере UrlInfo выше; в этот раз сообщение направлено нескольким получателям с помощью свойств cc и 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()
}
}
Примечание:
Компонент EmailComposer может работать по-разному на разных платформах. Для получения более подробной информации см. Справочное руководство API для EmailComposer.