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.
Ekstensi paket memperluas model ekstensi aplikasi dengan memungkinkan berbagi konten yang lebih luas antar paket. Host ekstensi paket dapat menerima ekstensi dari paket apa pun, sehingga cocok untuk skenario ekstensibilitas tingkat platform.
Note
Ekstensi paket memerlukan Windows 11 dan menggunakan uap17 namespace. Untuk pendekatan yang kompatibel sebelumnya, lihat Ekstensi aplikasi yang menggunakan uap3.
Ekstensi paket vs. ekstensi aplikasi
| Feature | Ekstensi aplikasi (uap3) |
Ekstensi paket (uap17) |
|---|---|---|
| Sistem Operasi Minimum | Windows 10 1607 | Windows 11 |
| Ruang lingkup | Per aplikasi | Per paket |
| Berbagi konten | Folder publik saja | Akses konten paket lengkap |
| Namespace manifest | uap3:AppExtension |
uap17:PackageExtension |
Deklarasikan host ekstensi paket
PackageExtensionHost Tambahkan deklarasi ke manifes aplikasi host:
<Package xmlns:uap17="http://schemas.microsoft.com/appx/manifest/uap/windows10/17" ...>
<Applications>
<Application ...>
<Extensions>
<uap17:Extension Category="windows.packageExtensionHost">
<uap17:PackageExtensionHost>
<uap17:Name>com.example.myplatform.extensions</uap17:Name>
</uap17:PackageExtensionHost>
</uap17:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Deklarasikan ekstensi paket
Dalam manifes paket ekstensi:
<Package xmlns:uap17="http://schemas.microsoft.com/appx/manifest/uap/windows10/17" ...>
<Applications>
<Application ...>
<Extensions>
<uap17:Extension Category="windows.packageExtension">
<uap17:PackageExtension Name="com.example.myplatform.extensions"
Id="MyExtension"
DisplayName="My Extension"
Description="Adds features to the platform">
<uap17:Properties>
<ExtensionType>content</ExtensionType>
<Version>1.0</Version>
</uap17:Properties>
</uap17:PackageExtension>
</uap17:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Temukan perluasan paket
Gunakan API AppExtensionCatalog yang sama untuk menemukan ekstensi paket saat runtime. Nama host sesuai dengan Name yang dideklarasikan dalam manifes:
var catalog = AppExtensionCatalog.Open("com.example.myplatform.extensions");
var extensions = await catalog.FindAllAsync();
foreach (var ext in extensions)
{
System.Diagnostics.Debug.WriteLine(
$"Found extension: {ext.DisplayName} ({ext.Id})");
// Read custom properties
var properties = await ext.GetExtensionPropertiesAsync();
// Access properties as needed
}
Praktik terbaik
- Gunakan konvensi penamaan domain terbalik untuk nama ekstensi (misalnya,
com.company.app.extensions). - Versi protokol ekstensi Anda sehingga aplikasi host dapat menangani format ekstensi lama dan baru.
- Validasi konten ekstensi sebelum menggunakannya — ekstensi berasal dari paket lain dan tidak boleh tepercaya secara membabi buta.
Konten terkait
Windows developer