이 문서에서는 ActivateApplication 활성화 유형을 사용하는 위젯 공급자에 대한 명령줄 활성화 매개 변수의 형식을 설명합니다.
Important
위젯 공급자는 위젯 공급자 패키지 매니페스트 XML 형식에 설명된 대로 위젯 공급자 매니페스트 파일에서 활성화 방법을 지정합니다. 위젯 공급자는 CreateInstance 활성화 유형을 사용하고 ActivateApplication 활성화 방법을 사용하는 대신 IWidgetProvider 인터페이스 메서드를 사용하여 위젯 호스트 요청에 응답하는 것이 좋습니다. 이 문서의 정보는 완전성을 위해 제공되며 대부분의 위젯 공급자 구현에서 사용하지 않는 것이 좋습니다.
ActivateApplication 및 base64url 인코딩의 인수 문자열
위젯 공급자가 활성화되면 명령줄 인수의 --widget-call= 인코딩 앞에 명령줄 접두사로 추가됩니다.
--widget-call=[base64url]
예를 들어 base64url 부분은
--widget-call=ewogICAgIldpZGdldENhbGwiOiJDcmVhdGVXaWRnZXQiLAogICAgIldpZGdldENvbnRleHQiOnsKICAgICAgICAiSWQiOiI5ODU4MjEwOS1jNmJmLTQzNzItODlkNi04OWY1N2ViNzU0ZjYiLAogICAgICAgICJEZWZpbml0aW9uSWQiOiJQV0FfQ291bnRpbmdfV2lkZ2V0IiwKICAgICAgICAiU2l6ZSI6IkxhcmdlIgogICAgfQp9
로 디코딩됩니다.
{
"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, String customState);
void OnActionInvoked(WidgetActionInvokedArgs actionInvokedArgs);
void OnWidgetContextChanged(WidgetContextChangedArgs contextChangedArgs);
void Activate(WidgetContext widgetContext);
void Deactivate(String widgetId);
}
각 활성화는 하나의 메서드 호출을 나타냅니다. JSON 개체에는 메서드 이름과 호출 데이터를 포함하는 속성이 있는 WidgetCall 값이 있습니다. 아래 예제에서는 콜백 인수 개체에 대한 Args 등의 전송 속성 이름을 보여 줍니다.
WidgetContext의 경우 JSON에는 Id, DefinitionId, Size가 포함됩니다.
Id는 위젯 인스턴스를 식별하고, DefinitionId는 해당 매니페스트 정의를 식별합니다. JSON은 Size와 같은 문자열로 "Large"를 나타냅니다. 실제 WidgetContext.Size API 속성은 문자열이 아닌 WidgetSize 열거형입니다.
메모
위젯 공급자는 나중에 추가 매개 변수가 추가되는 경우를 처리하기 위해 예기치 않은 매개 변수 값을 무시해야 합니다.
위젯 공급자 CreateWidget API 호출은 Json 개체로 마샬링됩니다.
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
JSON을 WinRT 인터페이스 선언으로 처리하는 대신 ActivateApplication 인수를 처리할 때 여기에 표시된 JSON 전송 형식을 사용합니다.
마샬링된 객체 예제
위젯 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