Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano format parametrów aktywacji wiersza polecenia dla dostawców widżetów korzystających z typu aktywacji ActivateApplication .
Ważna
Dostawcy widżetów określają metodę aktywacji w pliku manifestu dostawcy widżetu zgodnie z opisem w formacie XML manifestu dostawcy widżetu. Zaleca się, aby dostawcy widżetów używali typu aktywacji CreateInstance i odpowiadali na żądania hostów widżetów przy użyciu metod interfejsu IWidgetProvider zamiast metody aktywacji ActivateApplication . Informacje zawarte w tym artykule są dostarczane pod kątem kompletności i nie są zalecane do użycia przez większość implementacji dostawcy widżetów.
Ciąg argumentów w funkcji ActivateApplication i kodowanie base64url
Po aktywowaniu dostawcy widżetu wiersz polecenia będzie miał --widget-call= prefiks przed kodowaniem base64url w argumentach wiersza polecenia.
--widget-call=[base64url]
Na przykład segment base64url w
--widget-call=ew0KICAgICJXaWRnZXRDYWxsIjoiQ3JlYXRlV2lkZ2V0IiwNCiAgICAiV2lkZ2V0Q29udGV4dCI6ew0KICAgICAgICAiSWQiOiI5ODU4MjEwOS1jNmJmLTQzNzItODlkNi04OWY1N2ViNzU0ZjYiLA0KICAgICAgICAiRGVmaW5pdGlvbk5hbWUiOiJQV0FfQ291bnRpbmdfV2lkZ2V0IiwNCiAgICAgICAgIlNpemUiOiJMYXJnZSINCiAgICB9DQp9
jest dekodowany na
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Szczegóły formatu wiersza polecenia
Wiersz polecenia JSON koduje wywołania metod IWidgetProvider:
interface IWidgetProvider
{
void CreateWidget(WidgetContext widgetContext);
void DeleteWidget(String widgetId);
void OnActionInvoked(WidgetCallInvokedArgs actionInvokedArgs);
void OnWidgetContextChanged(WidgetContextChangedArgs contextChangedArgs);
}
Każda aktywacja reprezentuje jedno wywołanie metody. Obiekt JSON zawiera wartość WidgetCall z nazwą metody, a następnie wartość dla każdego parametru, nazwaną tak jak parametr, z tym że jego nazwa zaczyna się wielką literą. Każdy parametr jest przypisywany do obiektu JSON jako para< nazwa zmiennej, wartość>. Na przykład parametr WidgetContext widgetContext metody CreateWidget definiuje się następująco: WidgetContext
runtimeclass WidgetContext
{
String Id { get; };
String DefinitionId{ get; };
String Size { get; };
};
Note
Dostawcy widżetów powinni ignorować nieoczekiwane wartości parametrów, aby obsłużyć przypadek dodawania dodatkowych parametrów w przyszłości.
Wywołanie interfejsu API dostawcy widżetu CreateWidget jest serializowane do obiektu JSON:
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Obiekt zawsze będzie zawierać WidgetCall wartość i wszystkie wartości parametrów określone przez metodę IWidgetProvider .
Przykłady zorganizowanych obiektów
Utwórz obiekt JSON widżetu
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Usuń obiekt JSON widżetu
{
"WidgetId": "1AC74363-177B-4CD2-995F-3B25AEEA3FF4",
"WidgetCall": "DeleteWidget",
"CustomState": "usedata"
}
Obiekt JSON OnActionInvoked
{
"WidgetCall": "OnActionInvoked",
"Args":{
"Verb": "Verb String",
"Data": "Data Details",
"CustomState": "usedata",
"WidgetContext": {
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
}
Aktywowanie obiektu Json
{
"WidgetCall": "Activate",
"WidgetContext": {
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Dezaktywowanie obiektu Json
{
"WidgetCall": "Deactivate",
"WidgetId":"98582109-c6bf-4372-89d6-89f57eb754f6"
}
Obiekt JSON OnWidgetContextChanged
Na przykład gdy WidgetSize zmieni się na Medium, zostanie wyzwolone zdarzenie WidgetContextChanged.
{
"WidgetCall": "OnWidgetContextChanged",
"Args":{
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Medium"
}
}
}