Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Windows 10 können Sie den zugewiesenen Zugriff verwenden, um ein Kioskgerät zu erstellen, mit dem Benutzer nur mit einer einzigen universellen Windows-App interagieren können. In diesem Artikel wird beschrieben, wie Sie eine Kiosk-App und bewährte Methoden implementieren.
Es gibt zwei verschiedene Erfahrungen, die zugewiesenen Zugriff bieten:
Die Einzel-App-Kiosk-Erfahrung
Weisen Sie einer App ein Konto zu. Wenn sich ein Benutzer anmeldet, hat er nur Zugriff auf diese App und nichts anderes auf dem System. Während dieser Zeit ist das Kioskgerät gesperrt, wobei die Kiosk-App über dem Sperrbildschirm ausgeführt wird. Diese Erfahrung wird häufig für öffentlich zugängliche Kioskcomputer verwendet. weitere Informationen finden Sie unter Einrichten eines Kiosks unter Windows 10 Pro, Enterprise oder Education .
Die Multi-App-Kioskumgebung (verfügbar in Windows 10, Version 1709 und höher)
Sie können einem Konto eine oder mehrere Apps zuweisen. Wenn sich ein Benutzer anmeldet, wird das Gerät in einer eingeschränkten Shell-Umgebung gestartet, die nur auf Ihre ausgewählten Apps zugreifen kann. Weitere Informationen finden Sie unter Erstellen eines Windows 10-Kiosks, der mehrere Apps ausführt .
In diesem Artikel wird nur die Einzel-App-Kioskoberfläche beschrieben. In der Multi-App-Umgebung werden ausgewählte Apps in einem normalen Desktopkontext ausgeführt und erfordern keine spezielle Behandlung oder Änderung.
Begriffe
Begriff | BESCHREIBUNG |
---|---|
Zugewiesener Zugriff | Ein Feature, das es einem Systemadministrator ermöglicht, die Benutzererfahrung zu verwalten, indem die Einstiegspunkte der Anwendung eingeschränkt werden, die dem Benutzer des Geräts verfügbar gemacht werden. Beispielsweise können Sie Kunden in Ihrem Unternehmen auf die Verwendung einer App beschränken, damit Ihr PC wie ein Kiosk fungiert. Wenn sich jemand mit dem angegebenen Konto anmeldet, kann er diese App nur verwenden. Sie können apps nicht wechseln oder die App mithilfe von Touchgesten, einer Maus, der Tastatur oder Hardwaretasten schließen. Außerdem werden keine App-Benachrichtigungen angezeigt. |
Sperrbildschirm-App (oder Sperr-App) | Eine Anwendung, die entweder die Möglichkeit nutzt, ein dynamisches Hintergrundbild festzulegen oder das neue Sperrerweiterungsframework nutzt. |
über der Sperrbildschirm-App (oder über der Sperr-App) | Eine Anwendung, die über dem Sperrbildschirm gestartet wird, während die Sperrbildschirm-App ausgeführt wird (z. B. wenn der Desktop gesperrt ist). |
Sperr-App | Eine Anwendung, die normal ausgeführt wird, in einem entsperrten Windows-Kontext. |
LockApplicationHost | Eine WinRT-Klasse, die es Apps oberhalb des Sperrbildschirms ermöglicht, die Entsperrung des Geräts anzufordern, und der App die Möglichkeit bietet, sich registrieren zu lassen, um benachrichtigt zu werden, wenn das Gerät mit der Entsperrung beginnt. |
Ansicht oder Anwendungsansicht | Jede Ansicht ist ein separates Fenster in der App. Eine App kann über eine Hauptansicht verfügen und bei Bedarf mehrere und sekundäre Ansichten erstellen. Weitere Informationen finden Sie unter ApplicationView . |
Die Erweiterung "windows.aboveLockScreen"
Der zugewiesene Zugriff in Windows 10 verwendet das Sperrframework. Wenn sich ein Benutzer mit zugewiesenem Zugriff anmeldet, sperrt eine Hintergrundaufgabe den Desktop und startet die Kiosk-App über der Sperre. Je nachdem, ob die Windows.aboveLockScreen-Erweiterung verwendet wird, kann sich das Verhalten der App unterscheiden.
Mithilfe von "windows.aboveLockScreen " kann Ihre Kiosk-App auf die LockApplicationHost-Laufzeitklasse zugreifen, wodurch die App wissen kann, wann sie über der Sperre ausgeführt wird (und daher als Kioskumgebung ausgeführt wird). Wenn eine Instanz nicht zurückgegeben werden kann, wird die App in einem normalen Desktopkontext ausgeführt.
Wenn das Lock Framework die Kiosk-App über der Sperre startet und die App die Erweiterung "windows.aboveLockScreen " aufweist, erstellt das Lock Framework automatisch eine neue sekundäre Ansicht über der Sperre. Die Hauptansicht befindet sich unter der Sperre. Diese sekundäre Ansicht enthält den Inhalt Ihrer App und ist das, was der Benutzer sieht. Diese Ansicht kann mit der Erweiterung verwendet werden, um Ihre Kioskerfahrung anzupassen. Beispielsweise können Sie folgende Aktionen ausführen:
Sichern Sie Ihre Kioskumgebung, indem Sie eine separate Seite erstellen, die ausschließlich Kioskinhalte anzeigt.
Rufen Sie die LockApplicationHost.RequestUnlock() -Methode aus Ihrer App auf, um einen Weg aus dem Modus "Zugewiesener Zugriff" hinzuzufügen und zum Anmeldebildschirm zurückzukehren.
Fügen Sie demLockApplicationHost.Unlocking-Ereignis einen Ereignishandler hinzu, der ausgelöst wird, wenn ein Benutzer STRG+ALT+ENTF drückt, um die Kioskumgebung zu beenden. Der Handler kann auch zum Speichern von Daten vor dem Beenden verwendet werden.
Wenn die App nicht über die Erweiterung "windows.aboveLockScreen " verfügt, wird keine sekundäre Ansicht erstellt, und die App wird gestartet, als ob sie normal ausgeführt wird. Da die App keinen Zugriff auf eine Instanz von LockApplicationHost hat, kann sie nicht ermitteln, ob sie in einem regulären Kontext oder für eine Kioskumgebung ausgeführt wird. Das Weglassen der Erweiterung hat Vorteile, wie die Unterstützung mehrerer Monitore
Unabhängig davon, ob Ihre App die Erweiterung verwendet, achten Sie darauf, ihre Daten zu sichern. Weitere Informationen finden Sie in den Richtlinien für Apps mit zugewiesenem Zugriff .
Ab Windows 10, Version 1607, gibt es keine Einschränkung mehr für die UWP-Erweiterung (Universelle Windows-Plattform), sodass die meisten Apps in den Einstellungen angezeigt werden können, wenn der Benutzer den zugewiesenen Zugriff konfiguriert.
Bewährte Methoden
Dieser Abschnitt bezieht sich auf eine Kioskanwendung, die die Erweiterung "windows.aboveLockScreen " verwendet.
Sichern Ihrer Informationen
Wenn die Kiosk-App sowohl oberhalb der Sperre im zugewiesenen Zugriff als auch im entsperrten Windows-Kontext ausgeführt werden soll, könnten Sie erwägen, eine andere Seite zu erstellen, die oberhalb der Sperre gerendert wird, und eine weitere Seite, die unterhalb der Sperre angezeigt wird. Auf diese Weise können Sie verhindern, dass vertrauliche Informationen im Kioskmodus angezeigt werden, da der Kioskmodus in der Regel anonymen Zugriff bedeutet. Hier sind die Schritte, die Sie ausführen, um zwei verschiedene Seiten zu verwenden: eine für unterhalb der Sperre und eine für oberhalb der Sperre.
Versuchen Sie in der Überschreibung der Funktion OnLaunched in App.xaml.cs, vor der RootFrame-Navigation eine Instanz der Klasse LockApplicationHost abzurufen.
Wenn der Anruf fehlschlägt, sollte die Kiosk-App normal im Hintergrund gestartet werden.
Wenn der Aufruf erfolgreich ist, sollte die Kiosk-App über dem Sperrbildschirm gestartet werden und im zugewiesenen Zugriffsmodus laufen. Möglicherweise möchten Sie, dass diese Version der Kiosk-App über eine andere Hauptseite verfügt, um vertrauliche Informationen auszublenden.
Im folgenden Beispiel wird dies veranschaulicht. AssignedAccessPage.xaml ist vordefiniert, und die App navigiert zu AssignedAccessPage.xaml, sobald sie erkennt, dass sie im Modus oberhalb des Sperrbildschirms läuft. Daher würde die normale Seite nur im Szenario "Unter Sperre" angezeigt.
Mit dieser Methode können Sie jederzeit während des App-Lebenszyklus feststellen, ob die App über dem Sperrbildschirm ausgeführt wird, und entsprechend reagieren.
using Windows.ApplicationModel.LockScreen;
// inside the override OnLaunched function in App.xaml.cs
if (rootFrame.Content == null)
{
LockApplicationHost host = LockApplicationHost.GetForCurrentView();
if (host == null)
{
// if call to LockApplicationHost is null, this app is running under lock
// render MainPage normally
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
else
{
// If LockApplicationHost was successfully obtained
// this app is running as a lock screen app, or above lock screen app
// render a different page for assigned access use
// to avoid showing regular main page to keep secure information safe
rootFrame.Navigate(typeof(AssignedAccessPage), e.Arguments);
}
}
Mehrere Ansichten, Fenster und Threads
Ab Windows 10, Version 1803, werden mehrere Ansichten in der Kioskumgebung für Apps unterstützt, die nicht über die Erweiterung "windows.aboveLockScreen " verfügen. Um mehrere Ansichten zu verwenden, stellen Sie sicher, dass die Option "Mehrere Anzeigen " des Kioskgeräts auf die Erweiterung dieser Displays festgelegt ist.
Wenn eine App mit mehreren Ansichten (und ohne windows.aboveLockScreen) während einer Kioskumgebung gestartet wird, wird die Hauptansicht der App auf dem ersten Monitor gerendert. Wenn eine neue Ansicht mithilfe von CreateNewView()von der App erstellt wird, wird sie auf dem zweiten Monitor gerendert. Wenn die App eine andere Ansicht erstellt, wechselt sie zum dritten Monitor usw.
Von Bedeutung
Kioskgeräte können nur eine Ansicht pro Monitor anzeigen. Wenn das Kioskgerät beispielsweise nur einen Monitor aufweist, wird immer die Hauptansicht der Kiosk-App angezeigt. Neue Ansichten, die von der App erstellt wurden, werden nicht angezeigt.
Wenn eine Kiosk-App die Erweiterung "windows.aboveLockScreen " aufweist und über der Sperre ausgeführt wird, wird sie anders initialisiert. Die Hauptansicht befindet sich unter der Sperre mit einer sekundären Ansicht darüber. Das sieht der Benutzer in der sekundären Ansicht. Auch wenn Sie keine neuen Ansichten explizit erstellen, verfügen Sie weiterhin über zwei Ansichten in der App-Instanz.
Sie können den folgenden Code im Hauptfenster Ihrer App (im Modus "Zugewiesener Zugriff") ausführen, um die Ansichtsanzahl anzuzeigen und festzustellen, ob der aktuelle Bildschirm die Hauptansicht ist.
using Windows.ApplicationModel.Core;
CoreApplication.GetCurrentView().IsMain //false
CoreApplication.Views.Count //2
Dispatcher
Jede Ansicht oder jedes Fenster verfügt über einen eigenen Dispatcher. Da die Hauptansicht für den Benutzer ausgeblendet ist, verwenden Sie GetCurrentView(), um auf die sekundäre Ansicht der App zuzugreifen, die über der Sperre anstelle von MainView() ausgeführt wird.
using Windows.ApplicationModel.Core;
private async void Button_Click(object sender, RoutedEventArgs e)
{
button.IsEnabled = false;
// start a background task and update UI periodically (every 1 second)
// using MainView dispatcher in below code will end up with app crash
// in assigned access mode, use GetCurrentView().Dispatcher instead
await CoreApplication.GetCurrentView().Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
async () =>
{
for (int i = 0; i < 60; ++i)
{
// do some background work, here we use Task.Delay to sleep
await Task.Delay(1000);
// update UI
textBlock1.Text = " " + i.ToString();
}
button.IsEnabled = true;
});
}
Wenn die App über "windows.aboveLockScreen" verfügt und als Kioskumgebung ausgeführt wird, führt das Erstellen neuer Ansichten zu einer Ausnahme innerhalb der App:
Windows.ApplicationModel.Core.CoreApplication.CreateNewView(); //causes exception
Aus diesem Gründen können Sie nicht über mehrere Ansichten verfügen oder auf mehreren Monitoren ausgeführt werden. Wenn Ihre App eine der Beiden unterstützen muss, müssen Sie die Erweiterung "windows.aboveLockScreen" aus Ihrer App entfernen.
Hinzufügen eines Wegs außerhalb des zugewiesenen Zugriffs
In einigen Fällen ist die Ein/Aus-Taste, die Escapetaste oder andere Schaltflächen, die zum Beenden einer Anwendung verwendet werden, möglicherweise nicht aktiviert oder auf der Tastatur verfügbar. Bieten Sie in diesen Situationen eine Möglichkeit, den zugewiesenen Zugriff zu stoppen, z. B. einen Softwareschlüssel. Der folgende Ereignishandler zeigt, wie Sie den Zugewiesenen Zugriffsmodus beenden, indem Sie auf das Schaltflächenauswahlereignis reagieren, das durch einen Softwareschlüssel ausgelöst werden kann.
LockApplicationHost^ lockHost = LockApplicationHost::GetForCurrentView();
if (lockHost != nullptr)
{
lockHost->RequestUnlock();
}
Lebenszyklusverwaltung
Der Lebenszyklus einer Kiosk-App wird vom zugewiesenen Zugriffsframework behandelt. Wenn die App unerwartet beendet wird, versucht das Framework, sie neu zu starten. Wenn ein Benutzer jedoch STRG+ALT+ENTF drückt, um den Anmeldebildschirm anzuzeigen, wird ein Entsperrungsereignis ausgelöst. Das Zugewiesene Zugriffsframework lauscht auf das Ereignis und versucht, die App zu beenden.
Ihre Kiosk-App kann auch einen Handler für dieses Ereignis registrieren und Aktionen vor dem Beenden ausführen. Das Speichern von Daten ist ein Beispiel dafür. Ein Beispiel für die Registrierung eines Handlers finden Sie im folgenden Code.
using Windows.ApplicationModel.LockScreen;
public AssignedAccessPage()
{
this.InitializeComponent();
LockApplicationHost lockHost = LockApplicationHost.GetForCurrentView();
if (lockHost != null)
{
lockHost.Unlocking += LockHost_Unlocking;
}
}
private void LockHost_Unlocking(LockApplicationHost sender, LockScreenUnlockingEventArgs args)
{
// save any unsaved work and gracefully exit the app
App.Current.Exit();
}
Nachdem der Benutzer STRG+ALT+ENTF drückt und ein Anmeldebildschirm angezeigt wird, können zwei Dinge passieren:
Der Benutzer kennt das Kennwort für das zugewiesene Zugriffskonto und entsperrt den Desktop. Das Framework für den zugewiesenen Zugriff startet und sperrt den Desktop, woraufhin die Sperrbildschirm-App startet, die wiederum die Kiosk-App startet.
Der Benutzer kennt das Kennwort nicht oder ergreift keine weiteren Maßnahmen. Die Anmeldebildschirm-Timeouts führen dazu, dass sich der Desktop erneut sperrt; die Sperrbildschirm-App wird gestartet, die wiederum die Kiosk-App auslöst.
Erstellen Sie keine neuen Fenster oder Ansichten im Modus "Zugewiesener Zugriff".
Der folgende Funktionsaufruf endet mit einer Laufzeit ausnahme, wenn er im zugewiesenen Zugriffsmodus aufgerufen wird. Wenn dieselbe App, wenn sie unter Sperre verwendet wird, die Funktion aufruft, verursacht sie keine Laufzeit-Ausnahme. Es ist hilfreich, LockApplicationHost zu verwenden, um den Modus für den zugewiesenen Zugriff der App zu ermitteln und Ihre App entsprechend zu codieren, z. B. keine neuen Ansichten zu erstellen, wenn sich die App im Zugewiesenen Zugriffsmodus befindet.
Windows.ApplicationModel.Core.CoreApplication.CreateNewView(); //causes exception
Anhang 1: UWP-Erweiterung
Das folgende Beispielanwendungsmanifest verwendet die Windows.aboveLockScreen-UWP-Erweiterung.
Ab Windows 10, Version 1607, gibt es keine Einschränkung mehr für die UWP-Erweiterung (Universelle Windows-Plattform), sodass die meisten Apps in den Einstellungen angezeigt werden können, wenn der Benutzer den zugewiesenen Zugriff konfiguriert.
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
<Identity Name="bd4df68b-dc18-4748-a14e-bc21dac13736" Publisher="Contoso" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="bd4df68b-dc18-4748-a14e-bc21dac13736" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>AboveLock</DisplayName>
<PublisherDisplayName>Contoso</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="AboveLock.App">
<uap:VisualElements DisplayName="AboveLock" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="AboveLock" BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png">
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
<Extensions>
<uap:Extension Category="windows.lockScreenCall" />
<uap:Extension Category="windows.aboveLockScreen" />
</Extensions>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>
Anhang 2: Problembehandlung
Normalerweise, wenn eine Kiosk-App über der Sperrbildschirm-App nicht aktiviert werden kann, finden Sie den Aktivierungsfehlercode im Sperrbildschirm. Verwenden Sie den Fehlercode, um das Problem zu ermitteln, indem Sie Windows System-Fehlercodes nachschlagen. Darüber hinaus enthält die Ereignisanzeige weitere Informationen zu Aktivierungsfehlern. Gehen Sie folgendermaßen vor:
Öffnen Sie Ereignisanzeige. Es gibt zwei wahrscheinliche Orte, an denen man Aktivierungsfehler findet.
Erweitern Sie im Bereich "Ereignisanzeige " (Lokal)Windows-Protokolle, und wählen Sie dann "Anwendung" aus.
Erweitern Sie in der Ereignisanzeige (lokal) auch die Anwendungs- und Dienstprotokolle, erweitern Sie Windows, erweitern Sie Apps, und wählen Sie dann Microsoft-Windows-TWinUI/Operational aus.
Da Kiosk-Apps mit zugewiesenem Zugriff nicht im Vollbildmodus ausgeführt werden, gibt ApplicationView.GetForCurrentView().IsFullScreenMode false zurück.