アプリ間通信

AppStudio の AppFramework が提供する InterAppCommunication プラグインは、アプリ間の相互作用を制御するコンポーネントに使用されます。 アプリとの通信機能を使用する前に、デフォルト アプリを設定することをお勧めします。 この機能を使用するには、まず次のインポート ステートメントを含める必要があります。

import ArcGIS.AppFramework.InterAppCommunication 1.0

この機能の例については、ArcGIS AppStudio または AppStudio サンプル GitHub リポジトリにあるサンプル アプリをご覧ください。

Email

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 リファレンス」をご参照ください。


このトピックの内容
  1. Email