ウィジェット プロバイダーの ActivateApplication プロトコル

注意

一部の情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。

重要

このトピックで説明する機能は、ビルド 25217 以降の Windows の Dev チャネル プレビュー ビルドで使用できます。 Windows のプレビュー ビルドの詳細については、「Windows 10 Insider Preview」を参照してください。

この記事では、 ActivateApplication アクティブ化の種類を使用するウィジェット プロバイダーのコマンド ライン アクティブ化パラメーターの形式について説明します。

重要

ウィジェット プロバイダーは、ウィジェット プロバイダー パッケージ マニフェスト XML 形式で説明されているように、 ウィジェット プロバイダー マニフェスト ファイルでアクティブ化方法を指定します。 ウィジェット プロバイダーでは、ActivateApplication アクティブ化メソッドを使用する代わりに、CreateInstance アクティブ化の種類を使用し、IWidgetProvider インターフェイス メソッドを使用してウィジェット ホスト要求に応答することをお勧めします。 この記事の情報は完全のために提供されており、ほとんどのウィジェット プロバイダーの実装で使用することはお勧めしません。

ActivateApplication および base64url エンコードの引数文字列

ウィジェット プロバイダーがアクティブ化されると、コマンド ライン引数 --widget-call=base64url エンコードの前に、コマンド ラインにプレフィックスが付けられます。

--widget-call=[base64url]

たとえば、 の base64url 部分

--widget-call=ew0KICAgICJXaWRnZXRDYWxsIjoiQ3JlYXRlV2lkZ2V0IiwNCiAgICAiV2lkZ2V0Q29udGV4dCI6ew0KICAgICAgICAiSWQiOiI5ODU4MjEwOS1jNmJmLTQzNzItODlkNi04OWY1N2ViNzU0ZjYiLA0KICAgICAgICAiRGVmaW5pdGlvbk5hbWUiOiJQV0FfQ291bnRpbmdfV2lkZ2V0IiwNCiAgICAgICAgIlNpemUiOiJMYXJnZSINCiAgICB9DQp9

は にデコードされます

{
    "WidgetCall":"CreateWidget",
    "WidgetContext":{
        "Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
        "DefinitionId":"PWA_Counting_Widget",
        "Size":"Large"
    }
}

コマンド ライン形式の詳細

Json コマンド ラインは、 メソッドの呼び出しを IWidgetProvider エンコードします。

    interface IWidgetProvider
    {
        void CreateWidget(WidgetContext widgetContext);
        void DeleteWidget(String widgetId);
        void OnActionInvoked(WidgetCallInvokedArgs actionInvokedArgs);
        void OnWidgetContextChanged(WidgetContextChangedArgs contextChangedArgs);
    }

各アクティブ化は、1 つのメソッド呼び出しを表します。 Json オブジェクトには、メソッド名を WidgetCall 持つ値と、大文字以外のパラメーター名として名前が付けられた各パラメーターの値があります。 各パラメーターは、ペア<変数名、値> として json オブジェクトにマップされます。 たとえば、 メソッドの WidgetContext widgetContext パラメーターの CreateWidget 場合、 WidgetContext は次のように定義されます。

    runtimeclass WidgetContext
    {
        String Id { get; };
        String DefinitionId{ get; };
        String Size { get; };
    };

注意

ウィジェット プロバイダーは、将来追加のパラメーターが追加されるケースを処理するために、予期しないパラメーター値を無視する必要があります。

ウィジェット プロバイダー CreateWidget API 呼び出しは Json オブジェクトにマーシャリングされます。

{
    "WidgetCall":"CreateWidget",
    "WidgetContext":{
        "Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
        "DefinitionId":"PWA_Counting_Widget",
        "Size":"Large"
    }
}

オブジェクトには、 メソッドで WidgetCall 指定された値とすべてのパラメーター値が常に IWidgetProvider 含まれます。

マーシャリングされたオブジェクトの例

Widget Json オブジェクトを作成する

{
    "WidgetCall":"CreateWidget",
    "WidgetContext":{
        "Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
        "DefinitionId":"PWA_Counting_Widget",
        "Size":"Large"
    }
}

ウィジェット Json オブジェクトの削除

{
  "WidgetId": "1AC74363-177B-4CD2-995F-3B25AEEA3FF4",
  "WidgetCall": "DeleteWidget",
  "CustomState": "usedata"
}

OnActionInvoked Json オブジェクト

{
    "WidgetCall": "OnActionInvoked",
    "Args":{
        "Verb": "Verb String",
        "Data": "Data Details",
        "CustomState": "usedata",
        "WidgetContext": {
            "Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
            "DefinitionId":"PWA_Counting_Widget",
            "Size":"Large"
        }
    }
}

Json オブジェクトのアクティブ化

{
    "WidgetCall": "Activate",
    "WidgetContext": {
        "Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
        "DefinitionId":"PWA_Counting_Widget",
        "Size":"Large"
    }
}

Json オブジェクトを非アクティブ化する

{
    "WidgetCall": "Deactivate",
    "WidgetId":"98582109-c6bf-4372-89d6-89f57eb754f6"
}

OnWidgetContextChanged Json オブジェクト

たとえば、WidgetSize が [中] に変更されます。 SV2 では、WidgetContextChanged をトリグするのは WidgetSize だけです。

{
  "WidgetCall": "OnWidgetContextChanged",
  "Args":{
    "WidgetContext":{
            "Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
            "DefinitionId":"PWA_Counting_Widget",
            "Size":"Medium"
        }
  }
}