يوفر AppStudio AppFramework المكون الإضافي InterAppCommunication للمكونات التي تتحكم في التفاعل بين التطبيق والآخرين. يُوصَى بإعداد التطبيقات الافتراضية قبل استخدام الوظائف للتواصل معها. لاستخدام هذه الوظيفة، يجب عليك أولاً تضمين بيان الاستيراد التالي:
import ArcGIS.AppFramework.InterAppCommunication 1.0
وكمثال على هذه الوظيفة، راجع نموذج التطبيق المتاح في ArcGIS AppStudio أو في مستودع GitHub لنماذج AppStudio.
البريد الإلكتروني
قبل 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 عدد من حالات عدم الاتساق في السلوك في الأنظمة. لمزيد من المعلومات، راجع موضوع دليل إسناد واجهة برمجة التطبيقات لمكون EmailCompser.