Protokol ActivateApplication zprostředkovatele widgetů

Tento článek popisuje formát parametrů aktivace příkazového řádku pro poskytovatele widgetů, kteří používají typ aktivace ActivateApplication .

Important

Zprostředkovatelé widgetů určují metodu aktivace v souboru manifestu zprostředkovatele widgetu, jak je popsáno ve formátu XML manifestu balíčku zprostředkovatele widgetu. Doporučujeme, aby poskytovatelé widgetů používali typ aktivace CreateInstance a reagovali na požadavky hostitele widgetu pomocí metod rozhraní IWidgetProvider místo použití metody aktivace ActivateApplication . Informace v tomto článku jsou poskytovány pro úplnost a nedoporučuje se používat ve většině implementací zprostředkovatele widgetů.

Řetězec argumentů v kódování ActivateApplication a base64url

Když je poskytovatel widgetu aktivován, bude v argumentech příkazového řádku před base64url kódování přidána předpona --widget-call=.

--widget-call=[base64url]

Například část base64url v

--widget-call=ew0KICAgICJXaWRnZXRDYWxsIjoiQ3JlYXRlV2lkZ2V0IiwNCiAgICAiV2lkZ2V0Q29udGV4dCI6ew0KICAgICAgICAiSWQiOiI5ODU4MjEwOS1jNmJmLTQzNzItODlkNi04OWY1N2ViNzU0ZjYiLA0KICAgICAgICAiRGVmaW5pdGlvbk5hbWUiOiJQV0FfQ291bnRpbmdfV2lkZ2V0IiwNCiAgICAgICAgIlNpemUiOiJMYXJnZSINCiAgICB9DQp9

je dekódován do

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

Podrobnosti o formátu příkazového řádku

Příkazový řádek Json kóduje volání metod IWidgetProvider :

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

Každá aktivace představuje jedno volání metody. Objekt Json má WidgetCall hodnotu s názvem metody a pak hodnotu pro každý parametr s názvem parametru s výjimkou velkých písmen. Každý parametr je namapován jako název párové<proměnné, hodnota> na objekt JSON. Například, parametr WidgetContext widgetContext metody CreateWidgetWidgetContext definovanou takto:

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

Note

Zprostředkovatelé widgetů by měli ignorovat neočekávané hodnoty parametrů pro zpracování případu, kdy se v budoucnu přidají další parametry.

Volání rozhraní API zprostředkovatele CreateWidget widgetů je zařazováno do objektu Json:

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

Objekt bude vždy obsahovat WidgetCall hodnotu a všechny hodnoty parametrů zadané metodou IWidgetProvider .

Příklady sřazovaných objektů

Vytvoření objektu JSON widgetu

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

Odstranění objektu JSON widgetu

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

OnActionInvolat objekt 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"
        }
    }
}

Aktivace objektu JSON

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

Deaktivace objektu JSON

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

OnWidgetContextChanged – objekt JSON

Například když se WidgetSize změní na Medium, spustí se událost WidgetContextChanged.

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