Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan format parameter aktivasi baris perintah untuk penyedia widget yang menggunakan jenis aktivasi ActivateApplication .
Penting
Penyedia widget menentukan metode aktivasi dalam file manifes penyedia Widget seperti yang dijelaskan dalam format XML manifes paket penyedia Widget. Disarankan agar penyedia widget menggunakan jenis aktivasi CreateInstance dan menanggapi permintaan host widget menggunakan metode antarmuka IWidgetProvider alih-alih menggunakan metode aktivasi ActivateApplication . Informasi dalam artikel ini disediakan untuk kelengkapan dan tidak disarankan untuk digunakan oleh sebagian besar implementasi penyedia widget.
String argumen dalam Pengodean ActivateApplication dan base64url
Ketika penyedia widget diaktifkan, baris perintah akan memiliki --widget-call= awalan sebelum pengodean base64url dalam argumen baris perintah.
--widget-call=[base64url]
Misalnya, bagian base64url dalam
--widget-call=ew0KICAgICJXaWRnZXRDYWxsIjoiQ3JlYXRlV2lkZ2V0IiwNCiAgICAiV2lkZ2V0Q29udGV4dCI6ew0KICAgICAgICAiSWQiOiI5ODU4MjEwOS1jNmJmLTQzNzItODlkNi04OWY1N2ViNzU0ZjYiLA0KICAgICAgICAiRGVmaW5pdGlvbk5hbWUiOiJQV0FfQ291bnRpbmdfV2lkZ2V0IiwNCiAgICAgICAgIlNpemUiOiJMYXJnZSINCiAgICB9DQp9
didekodekan ke dalam
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Detail format baris perintah
Baris perintah Json mengodekan panggilan ke IWidgetProvider metode:
interface IWidgetProvider
{
void CreateWidget(WidgetContext widgetContext);
void DeleteWidget(String widgetId);
void OnActionInvoked(WidgetCallInvokedArgs actionInvokedArgs);
void OnWidgetContextChanged(WidgetContextChangedArgs contextChangedArgs);
}
Setiap aktivasi mewakili satu panggilan metode. Objek Json memiliki WidgetCall nilai dengan nama metode, lalu nilai untuk setiap parameter, dinamai sebagai nama parameter kecuali dimodalkan. Setiap parameter dipetakan sebagai nama variabel pasangan<, nilai> ke objek json. Misalnya, untuk WidgetContext widgetContext parameter CreateWidget metode , WidgetContext didefinisikan seperti ini:
runtimeclass WidgetContext
{
String Id { get; };
String DefinitionId{ get; };
String Size { get; };
};
Catatan
Penyedia widget harus mengabaikan nilai parameter yang tidak terduga untuk menangani kasus di mana parameter tambahan ditambahkan di masa mendatang.
Panggilan API penyedia CreateWidget widget dinamai ke objek Json:
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Objek akan selalu menyertakan WidgetCall nilai dan semua nilai parameter seperti yang ditentukan oleh IWidgetProvider metode .
Contoh objek marsekal
Membuat objek Widget Json
{
"WidgetCall":"CreateWidget",
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Hapus objek Widget Json
{
"WidgetId": "1AC74363-177B-4CD2-995F-3B25AEEA3FF4",
"WidgetCall": "DeleteWidget",
"CustomState": "usedata"
}
Objek 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"
}
}
}
Mengaktifkan Objek Json
{
"WidgetCall": "Activate",
"WidgetContext": {
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Large"
}
}
Menonaktifkan Objek Json
{
"WidgetCall": "Deactivate",
"WidgetId":"98582109-c6bf-4372-89d6-89f57eb754f6"
}
Objek Json OnWidgetContextChanged
Misalnya WidgetSize diubah menjadi Sedang. Di SV2, WidgetSize adalah satu-satunya hal yang memangkas WidgetContextChanged.
{
"WidgetCall": "OnWidgetContextChanged",
"Args":{
"WidgetContext":{
"Id":"98582109-c6bf-4372-89d6-89f57eb754f6",
"DefinitionId":"PWA_Counting_Widget",
"Size":"Medium"
}
}
}
Windows developer