Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Programozott módon kérheti a felhasználókat, hogy rögzítsék a Win32- vagy WinUI-alkalmazást a tálcán, hasonlóan ahhoz, ahogyan az alkalmazást rögzítheti a Start menüben. Azt is ellenőrizheti, hogy az alkalmazása jelenleg rögzítve van-e, és hogy a tálca lehetővé teszi-e a rögzítést.
Important
Fall Creators Update szükséges: Az SDK 16299-et kell célozni, és a 16299-es vagy újabb verzión kell futnia a tálca API-k használatához.
Fontos API-k: Tálcamanager osztály
Mikor kérje meg a felhasználót, hogy az alkalmazást a tálcára rögzítse?
A Tálcamanager osztály lehetővé teszi, hogy kérje meg a felhasználót, hogy rögzítse az alkalmazást a tálcán; a felhasználónak jóvá kell hagynia a kérést. Sok erőfeszítést tett egy kitűnő alkalmazás létrehozásába, és most lehetősége van arra, hogy megkérje a felhasználót, rögzítse azt a tálcára. Mielőtt azonban belemerülnénk a kódba, íme néhány dolog, amit szem előtt kell tartani a felhasználói élmény megtervezése során:
- Alkalmazásában készítsen egy zavarásmentes és könnyen figyelmen kívül hagyható UX-t, amely egyértelmű cselekvésre való felhívást tartalmaz. Kerülje a párbeszédpanelek és lebegő panelek használatát erre a célra. Hozzáférhető rögzítési ikonok vagy hasonló UX használata ajánlott, de nem kötelező.
- Mielőtt megkérné a felhasználót, hogy kitűzze, győződjön meg arról, hogy az alkalmazás értéket képvisel a felhasználó számára.
- Ne kérje meg a felhasználót, hogy rögzítse az alkalmazást, ha a csempe már rögzítve van, vagy az eszköz nem támogatja azt. (Ez a cikk bemutatja, hogyan állapítható meg, hogy a rögzítés támogatott-e.)
- Ne ismételten kérje meg a felhasználót, hogy rögzítse az alkalmazást (valószínűleg bosszankodnak).
- Ne használd a pin API-t explicit felhasználói beavatkozás nélkül, vagy ha az alkalmazás minimálisra van csökkentve vagy nincs megnyitva. Az alkalmazásnak az előtérben kell lennie ahhoz, hogy a folyamat működjön.
- Ne használjon telepítőket az API meghívásához.
Korlátozott hozzáférésű szolgáltatás (LAF) jóváhagyása
Important
A tálcára rögzítés a Windows egyes verzióiban korlátozott hozzáférésű szolgáltatás (lásd a LimitedAccessFeatures osztályt). További információkért vagy feloldási jogkivonat kéréséhez használja az LAF hozzáférési jogkivonat kérési űrlapot.
A korlátozott hozzáférésre vonatkozó korlátozás el lesz távolítva a Windows rendszerből a KB5074105 frissítéstől kezdődően (operációsrendszer-buildszámok: 26200.7705 és 26100.7705).
A LAF-hozzáférési jogkivonatot igénylő Windows-verziókban a tálcára rögzítési API-k meghívása előtt először meg kell hívnia a LimitedAccessFeatures.TryUnlockFeature metódust. A későbbi verziókban a tálcára rögzítés elérése nincs korlátozva, és közvetlenül meghívhatja a tálcára rögzítési API-kat.
Ezzel a kóddal megállapíthatja, hogy hívnia TryUnlockFeature kell-e, vagy kihagyhatja a hívást, és rögzítheti az alkalmazást LAF hozzáférési jogkivonat nélkül.
// LAF API seed value for com.microsoft.windows.taskbar.pin
constexpr PCWSTR c_taskbarPinLAFSeedValue =
L"4096B239A7295B635C090E647E867B5707DA6AB6CB78340B01FE4E0C8F4953D4";
// Returns true if a Limited Access Feature token is required
// for taskbar pinning on this machine.
inline bool IsLAFTokenRequiredForTaskbarPinning()
{
wil::unique_hkey hKey;
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AppModel"
L"\\LimitedAccessFeatures\\com.microsoft.windows.taskbar.pin",
0, KEY_READ, &hKey) != ERROR_SUCCESS)
{
return false;
}
DWORD value = 0;
DWORD size = sizeof(value);
LSTATUS status = RegQueryValueExW(hKey.get(),
c_taskbarPinLAFSeedValue,
nullptr, nullptr,
reinterpret_cast<LPBYTE>(&value), &size);
return (status == ERROR_SUCCESS) && (value != 0);
}
1. Ellenőrizze, hogy léteznek-e a szükséges API-k
Win32
Ha asztali Win32-alkalmazásból szeretné használni TaskbarManager , akkor ellenőriznie kell, hogy az asztali alkalmazás támogatása jelen van-e. Az aktiválási ITaskbarManagerDesktopAppSupportStatics előállító jelölőfelületét TaskbarManager megkeresve elvégezheti ezt az ellenőrzést. Ha ez a felület nem érhető el, akkor az asztali alkalmazásból nem fogja tudni használni TaskbarManager .
if (winrt::try_get_activation_factory<winrt::Windows::UI::Shell::TaskbarManager, winrt::Windows::UI::Shell::ITaskbarManagerDesktopAppSupportStatics>())
{
// TaskbarManager desktop app support is available.
}
else
{
// TaskbarManager desktop app support is not available.
}
2. Ellenőrizze, hogy a tálca jelen van-e, és engedélyezi-e a rögzítést
A Windows-alkalmazások sokféle eszközön futtathatók; nem mindegyik támogatja a tálcát. Jelenleg csak asztali számítógépek támogatják a tálcát. Emellett az alkalmazások kérhetik a rögzítést, de a rögzítést egy adott időpontban nem lehet engedélyezni. Javasoljuk, hogy az alkalmazások ellenőrizzék, hogy engedélyezett-e a rögzítés a felhasználói élmény megjelenése előtt, hogy elkerüljük a felhasználók összezavarását.
Még ha elérhető is a tálca, a felhasználó gépén lévő csoportházirend letilthatja a tálcára való rögzítést. Ezért mielőtt megkísérli rögzíteni az alkalmazást, ellenőriznie kell, hogy támogatott-e a tálcára való rögzítés. A TaskbarManager.IsPinningAllowed tulajdonság akkor ad értéket true, ha a tálca jelen van és engedélyezi a rögzítést.
// Check if taskbar allows pinning, apps may request pinning, but pinning may not be allowed at any given time. It is suggested that apps check whether pinning is allowed before a UX is surfaced in order to prevent confusing users.
bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;
Important
Vannak olyan követelmények is, amelyeket a hívás tényleges indításakor teljesíteni kell ahhoz, hogy a pin-kód kérése engedélyezve legyen:
- Az alkalmazás előtérben van
- Az alkalmazás a Start menübejegyzéssel rendelkezik
- Az értesítések megjelenítéséhez a felhasználónak engedélyeznie kell a rendszerértesítéseket. Javasoljuk, hogy ezt a követelményt jelenítse meg az alkalmazás UX-ében a felhasználók számára.
Ezek a követelmények nem eredményeznek kivételt, ha nem teljesülnek, a pin-kód kérése egyszerűen le lesz tiltva.
IsPinningAllowed meg lehet hívni annak megállapításához, hogy engedélyezve lesz-e a pin-kódra vonatkozó kérés (prompt).
Note
Ha nem szeretné rögzíteni az alkalmazást a tálcán, és csak azt szeretné megtudni, hogy elérhető-e a tálca, használja a TaskbarManager.IsSupported tulajdonságot .
3. Ellenőrizze, hogy az alkalmazás jelenleg rögzítve van-e a tálcán
Nyilvánvaló, hogy nincs értelme arra kérni a felhasználót, hogy rögzítse az alkalmazást a tálcára, ha az már ott van. A TaskbarManager.IsCurrentAppPinnedAsync metódussal ellenőrizheti, hogy az alkalmazás már rögzítve van-e a felhasználó megkérdezése előtt.
// Check whether your app is currently pinned
bool isPinned = await TaskbarManager.GetDefault().IsCurrentAppPinnedAsync();
if (isPinned)
{
// The app is already pinned--no point in asking to pin it again!
}
else
{
//The app is not pinned.
}
4. Az alkalmazás rögzítése
Ha a tálca jelen van, és a rögzítés engedélyezett, és az alkalmazás jelenleg nincs rögzítve, érdemes egy apró tippet megjeleníteni, hogy a felhasználók tudják, hogy rögzíthetik az alkalmazást. Például megjeleníthet egy kitűző ikont valahol a felhasználói felületen, amelyekre a felhasználó kattinthat.
Ha a felhasználó a pin-kód javaslat felhasználói felületére kattint, hívja meg a TaskbarManager.RequestPinCurrentAppAsync metódust . Ez a módszer egy párbeszédpanelt jelenít meg, amely arra kéri a felhasználót, hogy erősítse meg, szeretné-e az alkalmazást rögzíteni a tálcára.
Important
Az előtérben futó felhasználói felületi szálból kell ezt meghívni, ellenkező esetben kivételt fog dobni.
// Request to be pinned to the taskbar.
bool isPinned = await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();
Ez a módszer egy logikai értéket ad vissza, amely azt jelzi, hogy az Ön alkalmazása mostantól rögzítve van-e a tálcán. Ha az alkalmazás már rögzítve van, a metódus azonnal visszatér true anélkül, hogy megjelenítene egy párbeszédpanelt a felhasználónak. Ha a felhasználó a párbeszédpanelen a "nem" gombra kattint, vagy az alkalmazás rögzítése a tálcára nem engedélyezett, a metódus visszatér false. Ellenkező esetben a felhasználó az igen gombra kattintott, és az alkalmazás rögzítve lett, és az API vissza fog térni true.
Resources
Windows developer