Протокол ActivateApplication поставщика мини-приложений
В этой статье описывается формат параметров активации командной строки для поставщиков мини-приложений, использующих тип активации ActivateApplication .
Внимание
Поставщики мини-приложений указывают метод активации в файле манифеста поставщика мини-приложений, как описано в формате XML манифеста пакета поставщика мини-приложений. Рекомендуется использовать тип активации CreateInstance и отвечать на запросы узла мини-приложений с помощью методов интерфейса IWidgetProvider вместо метода активации ActivateApplication . Сведения, приведенные в этой статье, предоставляются для полноты и не рекомендуется использовать для большинства реализаций поставщиков мини-приложений.
Строка аргументов в кодировке 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);
}
Каждая активация представляет один вызов метода. Объект Json имеет WidgetCall
значение с именем метода, а затем значением для каждого параметра, именуемого как имя параметра, кроме прописной буквы. Каждый параметр сопоставляется с именем переменной пары<, значением> объекта json. Например, для WidgetContext widgetContext
параметра CreateWidget
метода WidgetContext
определяется следующим образом:
runtimeclass WidgetContext
{
String Id { get; };
String DefinitionId{ get; };
String Size { get; };
};
Примечание.
Поставщики мини-приложений должны игнорировать непредвиденные значения параметров для обработки ситуации, когда в будущем добавляются дополнительные параметры.
Вызов 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. В SV2 Мини-приложениеSize — это единственное, что триг мини-приложение WidgetContextChanged.
{
"WidgetCall": "OnWidgetContextChanged",
"Args":{
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Medium"
}
}
}
Windows developer