AppStudio AppFramework 可提供 InterAppCommunication 插件,用于控制您的应用程序与其他应用程序之间交互的组件。 建议在使用功能与应用程序进行通信之前,设置默认应用程序。 要使用此功能,您首先需要包含以下 import 语句:
import ArcGIS.AppFramework.InterAppCommunication 1.0
有关此功能的示例,请参阅 ArcGIS AppStudio 或 AppStudio 示例 GitHub 资料档案库中提供的示例应用程序。
电子邮件
在 AppStudio 3.1 之前,最好使用 UrlInfo 组件将预填充电子邮件集成到您的应用程序中,并使用 queryParameters 属性通过 mailto URL 来传递电子邮件的主题和正文。 以下代码示例使用 UrlInfo 组件来创建包含系统详细信息的电子邮件:
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
}
}
此方法存在局限性,它不允许将电子邮件发送给多个收件人,且不支持附件。 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 组件在各个平台上的行为存在许多不同之处。 有关详细信息,请参阅 EmailComposer 的 API 参考。