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