この記事では、 ActivateApplication アクティブ化の種類を使用するウィジェット プロバイダーのコマンド ライン アクティブ化パラメーターの形式について説明します。
Important
ウィジェット プロバイダーは、ウィジェット プロバイダー パッケージ マニフェスト XML 形式で説明されているように、 ウィジェット プロバイダー マニフェスト ファイルでアクティブ化方法を指定します。 ウィジェット プロバイダーでは、ActivateApplication アクティブ化メソッドを使用する代わりに、CreateInstance アクティブ化の種類を使用し、IWidgetProvider インターフェイス メソッドを使用してウィジェット ホスト要求に応答することをお勧めします。 この記事の情報は完全のために提供されており、ほとんどのウィジェット プロバイダーの実装で使用することはお勧めしません。
ActivateApplication および base64url エンコードの引数文字列
ウィジェット プロバイダーがアクティブ化されると、コマンド ライン引数内の base64url エンコードの前に、--widget-call= が接頭辞として付加されます。
--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; };
};
Note
ウィジェット プロバイダーは、将来追加のパラメーターが追加されるケースを処理するために、予期しないパラメーター値を無視する必要があります。
API 呼び出し CreateWidget ウィジェット プロバイダーは Json オブジェクトにマーシャリングされます。
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
オブジェクトには常に、 WidgetCall 値と、 IWidgetProvider メソッドで指定されたすべてのパラメーター値が含まれます。
マーシャリングされたオブジェクトの例
ウィジェット 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 が Medium に変更されると、 WidgetContextChanged イベントがトリガーされます。
{
"WidgetCall": "OnWidgetContextChanged",
"Args":{
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Medium"
}
}
}
Windows developer