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.
Nota
Beberapa informasi berkaitan dengan produk yang telah dirilis sebelumnya, yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersurat maupun tersirat, sehubungan dengan informasi yang diberikan di sini.
Penting
Fitur yang dijelaskan dalam topik ini tersedia di build pratinjau Dev Channel Windows yang dimulai dengan build 25217. Untuk informasi tentang versi pratinjau dari Windows, lihat Windows 10 Insider Preview.
Antarmuka pengguna dan interaksi untuk Widget Windows diimplementasikan menggunakan Kartu Adaptif. Setiap widget menyediakan templat visual dan, secara opsional, templat data yang didefinisikan menggunakan dokumen JSON yang sesuai dengan skema Kartu Adaptif. Artikel ini memanding Anda melalui langkah-langkah untuk membuat templat widget sederhana.
Widget penghitung
Contoh dalam artikel ini adalah widget penghitungan sederhana yang menampilkan nilai bilangan bulat dan memungkinkan pengguna untuk meningkatkan nilai dengan mengklik tombol di UI widget. Contoh templat ini menggunakan pengikatan data untuk memperbarui UI secara otomatis berdasarkan konteks data.
Aplikasi perlu menerapkan penyedia widget untuk menghasilkan dan memperbarui templat widget dan/atau data dan meneruskannya ke host widget. Artikel Menerapkan penyedia widget di aplikasi win32 menyediakan panduan langkah demi langkah untuk menerapkan penyedia widget untuk widget penghitungan yang akan kami hasilkan dalam langkah-langkah di bawah ini.
Perancang Kartu Adaptif
Perancang Kartu Adaptif adalah alat interaktif online yang memudahkan pembuatan templat JSON untuk Kartu Adaptif. Dengan menggunakan perancang, Anda dapat melihat visual yang dirender dan perilaku pengikatan data secara real time saat Anda membangun templat widget Anda. Ikuti tautan untuk membuka perancang, yang akan digunakan untuk semua langkah dalam panduan ini.
Buat templat kosong dari pengaturan awal
Di bagian atas halaman, dari menu dropdown Pilih aplikasi host, pilih Papan Widget. Ini akan mengatur ukuran kontainer untuk Kartu Adaptif agar memiliki ukuran yang didukung untuk widget. Perhatikan bahwa widget mendukung ukuran kecil, sedang, dan besar. Ukuran preset templat default adalah ukuran yang benar untuk widget kecil. Jangan khawatir jika konten meluap ke batas karena kami akan menggantinya dengan konten yang dirancang agar pas di dalam widget.
Ada tiga editor teks di bagian bawah halaman. Yang berlabel Editor Payload Kartu berisi definisi JSON dari UI widget Anda. Editor berlabel Editor Data Sampel berisi JSON yang menentukan konteks data opsional untuk widget Anda. Konteks data terikat secara dinamis ke Kartu Adaptif saat widget dirender. Untuk informasi selengkapnya tentang pengikatan data di Kartu Adaptif, lihat Bahasa Templat Kartu Adaptif.
Editor teks ketiga diberi label Sampel Editor Data Host. Perhatikan bahwa editor ini mungkin akan berada di bawah dua editor lainnya pada halaman. Jika demikian, klik + untuk memperluas editor. Aplikasi host widget dapat menentukan properti host yang dapat Anda gunakan di templat widget Anda untuk menampilkan konten yang berbeda secara dinamis berdasarkan nilai properti saat ini. Papan Widget mendukung properti host berikut.
Harta benda | Nilai | Deskripsi |
---|---|---|
host.ukuranWidget | "kecil", "sedang", atau "besar" | Ukuran widget yang disematkan. |
host.hostTheme | "terang" atau "gelap" | Tema perangkat saat ini tempat Papan Widget ditampilkan. |
host.isSettingsPayload | benar atau salah | Ketika nilai ini benar, pengguna telah mengklik tombol Sesuaikan widget di menu konteks widget. Anda dapat menggunakan nilai properti ini untuk menampilkan elemen antarmuka pengguna pengaturan khusus. Ini adalah metode alternatif untuk menggunakan IWidgetProvider2.OnCustomizationRequested untuk mengubah payload JSON di aplikasi penyedia widget. Untuk informasi selengkapnya, lihat Menerapkan kustomisasi widget. |
host.isHeaderSupported | benar atau salah | Jika nilai ini benar, kustomisasi header didukung. Untuk informasi selengkapnya, lihat isHeaderSupported. |
host.isHeader | benar atau salah | Ketika nilai ini benar, host meminta payload khusus untuk penyajian header widget. |
host.isWebSupported | benar atau salah | Ketika nilai ini salah, host saat ini tidak mendukung pemuatan konten web widget. Ketika ini terjadi, widget web akan menampilkan payload JSON fallback yang disediakan oleh penyedia widget, tetapi nilai ini dapat digunakan untuk menyesuaikan konten lebih lanjut. Untuk informasi selengkapnya, lihat Penyedia widget web |
host.isUserContextAuthenticated | benar atau salah | Ketika nilai ini salah, satu-satunya tindakan yang didukung adalah Action.OpenUrl. Nilai isUserContextAuthenticated dapat digunakan untuk menyesuaikan konten widget dengan tepat, mengingat batasan interaktivitas. |
Menu dropdown Ukuran kontainer dan Tema di samping menu dropdown Pilih aplikasi host di bagian atas halaman memungkinkan Anda mengatur properti ini tanpa mengedit sampel JSON secara manual di editor.
Membuat kartu baru
Di sudut kiri atas halaman, klik Kartu baru. Dalam dialog Buat , pilih Kartu Kosong. Anda sekarang akan melihat Kartu Adaptif kosong. Anda juga akan melihat bahwa dokumen JSON di editor data sampel kosong.
Widget penghitungan yang akan kita buat sangat sederhana, hanya terdiri dari 4 elemen TextBlock dan satu tindakan jenis Action.Execute, yang menentukan tombol widget.
Menambahkan elemen TextBlock
Tambahkan empat elemen TextBlock dengan menyeretnya dari panel elemen Card di sebelah kiri halaman ke kartu adaptif kosong di panel pratinjau. Pada titik ini, pratinjau widget akan terlihat seperti gambar berikut. Konten lagi meluap di luar batas widget, tetapi ini akan diperbaiki dalam langkah-langkah berikut.
Menerapkan tata letak kondisional
Editor Payload Kartu
"body": [
{
"type": "TextBlock",
"text": "You have clicked the button ${count} times"
},
{
"type": "TextBlock",
"text": "Rendering only if medium",
"$when": "${$host.widgetSize==\"medium\"}"
},
{
"type": "TextBlock",
"text": "Rendering only if small",
"$when": "${$host.widgetSize==\"small\"}"
},
{
"type": "TextBlock",
"text": "Rendering only if large",
"$when": "${$host.widgetSize==\"large\"}"
}
]
Dalam Bahasa Template Kartu Adaptif, properti $when
menentukan bahwa elemen yang mengandung ditampilkan ketika nilai terkait dievaluasi menjadi benar. Jika nilai dievaluasi menjadi false, elemen yang bersangkutan tidak ditampilkan. Dalam elemen isi
Sekarang pratinjau akan terlihat seperti gambar berikut:
Perhatikan bahwa pernyataan kondisional tidak tercermin dalam pratinjau. Ini karena perancang tidak mensimulasikan perilaku host widget. Klik tombol mode Pratinjau di bagian atas halaman untuk memulai simulasi. Pratinjau widget sekarang terlihat seperti gambar berikut:
Dari dropdown ukuran Kontainer , pilih "Sedang" dan perhatikan bahwa pratinjau beralih untuk hanya menampilkan TextBlock pada ukuran sedang. Kontainer dalam pratinjau juga mengubah ukuran, menunjukkan bagaimana Anda dapat menggunakan pratinjau untuk memastikan bahwa UI Anda sesuai dalam kontainer widget untuk setiap ukuran yang didukung.
Ikat ke konteks data
Contoh widget kami akan menggunakan properti status kustom bernama "count". Anda dapat melihat di templat saat ini bahwa nilai untuk TextBlock
{"count": "2"}
Perhatikan bahwa pratinjau sekarang menyisipkan nilai yang ditentukan untuk properti jumlah ke dalam teks untuk TextBlock pertama .
Menambahkan tombol
Langkah selanjutnya adalah menambahkan tombol ke widget kami. Di host widget, ketika pengguna mengklik tombol , host akan membuat permintaan ke penyedia widget. Untuk contoh ini, penyedia widget akan menaikkan nilai hitungan dan mengembalikan payload data yang diperbarui. Karena operasi ini memerlukan penyedia widget, Anda tidak akan dapat melihat perilaku ini di Perancang Kartu Adaptif, tetapi Anda masih dapat menggunakan perancang untuk menyesuaikan tata letak tombol Anda dalam UI Anda.
Dengan Kartu Adaptif, elemen interaktif didefinisikan dengan elemen tindakan . Tambahkan blok JSON berikut langsung setelah elemen badan di editor payload kartu. Pastikan untuk menambahkan koma setelah kurung siku penutup (]) elemen isi atau perancang akan melaporkan kesalahan pemformatan.
,
"actions": [
{
"type": "Action.Execute",
"title": "Increment",
"verb": "inc"
}
]
Dalam string JSON ini, properti jenis menentukan jenis tindakan yang sedang diwakili. Widget hanya mendukung jenis tindakan "Action.Execute". Judul berisi teks yang ditampilkan pada tombol untuk tindakan. Properti kata kerja
Templat widget lengkap
Daftar kode berikut menunjukkan versi akhir payload JSON.
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.6",
"body": [
{
"type": "TextBlock",
"text": "You have clicked the button ${count} times"
},
{
"type": "TextBlock",
"text": "Rendering Only if Small",
"$when": "${$host.widgetSize==\"small\"}"
},
{
"type": "TextBlock",
"text": "Rendering Only if Medium",
"$when": "${$host.widgetSize==\"medium\"}"
},
{
"type": "TextBlock",
"text": "Rendering Only if Large",
"$when": "${$host.widgetSize==\"large\"}"
}
],
"actions": [
{
"type": "Action.Execute",
"title": "Increment",
"verb": "inc"
}
]
}
Contoh pengaturan payload
Daftar kode berikut menunjukkan contoh sederhana payload JSON yang menggunakan properti host.isSettingsPayload untuk menampilkan konten yang berbeda ketika pengguna telah mengklik tombol Kustomisasi widget .
{
"type": "AdaptiveCard",
"body": [
{
"type": "Container",
"items":[
{
"type": "TextBlock",
"text": "Content payload",
"$when": "${!$host.isSettingsPayload}"
}
]
},
{
"type": "Container",
"items":[
{
"type": "TextBlock",
"text": "Settings payload",
"$when": "${$host.isSettingsPayload}"
}
]
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Increment",
"verb": "inc",
"$when": "${!$host.isSettingsPayload}"
},
{
"type": "Action.Submit",
"title": "Update Setting",
"verb": "setting",
"$when": "${$host.isSettingsPayload}"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.6"
}
Windows developer