日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分配的访问权限的展台应用:最佳做法

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分配的访问权限的展台应用:最佳做法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文: 分配的訪問權限的展臺應用:最佳做法

best practices guidance for developing a kiosk app for assigned access.

在 Windows 10 中,你可以使用鎖屏框架和分配的訪問權限創建展臺應用,該應用允許用戶與設備上的單個應用進行交互。 本文檔介紹了如何實現展臺應用,并介紹了最佳做法。所有示例代碼都采用 C# 編寫,但應該可以輕松地翻譯為你選擇的語言,因為基礎框架是 Windows RT。本文檔專為想要為其客戶編寫展臺應用的 OEM 和 ISV 而編寫。

條款

術語描述

分配的訪問權限

允許系統管理員通過限制公開給設備用戶的應用程序入口點來管理用戶體驗的功能。例如,你可以限制你公司的客戶僅使用一個應用,以便將你的電腦用作展臺。每當有人使用指定帳戶登錄時,他們僅能使用該應用。他們不能使用觸摸手勢、鼠標、鍵盤或硬件按鈕切換應用或關閉應用。他們同樣看不到任何應用通知。

鎖屏界面應用(或鎖屏應用)

利用設置動態壁紙功能或利用新的鎖屏可擴展性框架的應用程序。

上方鎖屏界面應用(或上方鎖屏應用)

鎖屏界面應用運行時(例如,桌面鎖定時),在其上方啟動的應用程序。

下方鎖屏應用

在已解鎖的 Windows 上下文中正常運行的應用程序。

LockApplicationHost

允許上方鎖屏界面應用請求設備解鎖并允許應用進行注冊以便在設備開始解鎖時收到系統通知的 WinRT 類。

視圖或應用程序視圖

每個視圖都是應用中的一個獨立窗口。應用可以擁有一個主視圖,并可根據需要創建多個輔助視圖。有關詳細信息,請參閱?ApplicationView。

?

在后臺

Windows 10 中分配的訪問權限可利用新的鎖屏框架。當分配的訪問權限用戶登錄時,后臺任務將鎖定桌面,并且鎖屏界面應用將啟動,然后運行鎖屏上方的展臺應用。展臺應用實際上作為上方鎖屏界面應用運行。

當鎖屏框架啟動鎖屏上方的展臺應用時,它將為展臺應用創建新的輔助視圖,并在新的輔助視圖中呈現其所有主視圖。

必須在應用程序清單文件中使用?windows.aboveLockScreen?擴展,才能使你的應用顯示在“設置”的“分配的訪問權限”中。有關應用程序清單的示例,請參閱附錄

要點??Windows 10 中“設置”下的“分配的訪問權限”應用列表旨在僅顯示 Windows 10 UWP(通用 Windows 平臺)應用程序,其 UAP 擴展名為?windows.aboveLockScreen

最佳做法

保護你的信息

如果展臺應用打算以分配的訪問權限并且以正常的方式在鎖屏上方運行,則你可能需在已解鎖的 Windows 上下文中創建一個要在鎖屏上方呈現的不同頁面和一個用于鎖屏下方的頁面。這將使你可以在展臺模式下避免顯示敏感信息,因為展臺模式通常意味著匿名訪問。下面是你使用兩個不同頁面時要遵循的步驟,一個用于鎖屏下方,一個用于鎖屏上方:

  • 在 App.xaml.cs 中的 OnLaunched 函數替代內部,嘗試在 rootFrame 導航之前獲取一個?LockApplicationHost?類的實例。
  • 如果調用失敗,則展臺應用應在鎖屏下方正常啟動。
  • 如果調用成功,則展臺應用應在運行于分配的訪問權限模式下的鎖屏上方啟動。你可能希望此版本的展臺應用具有一個不同的主頁面,以便隱藏敏感信息。
  • 以下示例將演示如何執行此操作。AssignedAccessPage.xaml 已預定義,而且當應用檢測到 AssignedAccessPage.xaml 正在上方鎖屏模式下運行時,將導航到該頁面。因此,普通頁面將僅在下方鎖屏方案下顯示。

    你可以使用此方法確定該應用在其生命周期內是否隨時都在鎖屏界面上運行并相應地做出響應。

    using Windows.ApplicationModel.LockScreen;// inside the override OnLaunched function in App.xaml.csif (rootFrame.Content == null) {LockApplicationHost host = LockApplicationHost.GetForCurrentView();if (host == null){// if call to LockApplicationHost is null, this app is running under lock// render MainPage normallyrootFrame.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 saferootFrame.Navigate(typeof(AssignedAccessPage), e.Arguments);} }

    多個視圖、窗口和線程

    請記住,僅主視圖或窗口才會在分配的訪問權限模式下呈現,但是要呈現在新的輔助視圖中。你在應用中創建的任何其他視圖將不呈現。請確保你希望用戶看到或訪問的所有內容都在主窗口中,因為用戶無法看到其他視圖。

    鎖屏框架可將展臺應用的主視圖呈現于新的輔助視圖中(它對該應用完全透明)。你不需要手動創建適用于上方鎖屏模式的輔助視圖,因為鎖屏框架會為你創建一個。這意味著你的應用在上方鎖屏模式下運行時實際上將有兩個視圖。當你的應用在分配的訪問權限模式下時,在你的主窗口中運行以下代碼,以通過查看視圖計數和值來確認當前窗口是否為主窗口。

    using Windows.ApplicationModel.Core;CoreApplication.GetCurrentView().IsMain //false CoreApplication.Views.Count //2

    下面是示例布局。

    調度程序

    每個視圖或窗口都有其自己的調度程序。在分配的訪問權限模式下,不應使用?MainView?調度程序,應改為使用?CurrentView?調度程序。

    例如,在以下代碼示例中,.xaml 頁面上有一個“按鈕”和一個?TextBlock。向該按鈕添加單擊事件處理程序。該處理程序會執行一些后臺工作,然后更新?TextBlock的文本。在此示例中使用?CoreApplication.MainView.Dispatcher?將導致應用崩潰,因為在分配的訪問權限模式下,主窗口不是?MainView,但在輔助視圖中呈現。建議你使用?CoreApplication.GetCurrentView.Dispatcher

    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 insteadawait CoreApplication.GetCurrentView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal,async () =>{for (int i = 0; i < 60; ++i){// do some background work, here we use Task.Delay to sleepawait Task.Delay(1000);// update UItextBlock1.Text = " " + i.ToString();}button.IsEnabled = true;}); }

    添加除分配的訪問權限之外的方法

    在某些情況下,用于停止應用程序的電源按鈕、Esc 按鈕或其他按鈕可能在鍵盤上無法啟用或不可用。在這些情況下,請提供一種方法來停止分配的訪問權限,例如軟件鍵。以下事件處理程序顯示了如何通過響應可能由軟件鍵觸發的按鈕單擊事件來停止分配的訪問權限模式。

    LockApplicationHost^ lockHost = LockApplicationHost::GetForCurrentView();if (lockHost != nullptr){lockHost->RequestUnlock();}

    生命周期管理

    如果展臺應用意外結束,分配的訪問權限框架將嘗試重新啟動它。如果用戶具有對鍵盤的物理訪問權限并按下 Ctrl+Alt+Del 顯示登錄屏幕,將觸發“正在解鎖”事件。分配的訪問權限框架偵聽此事件并將嘗試終止展臺應用。你的展臺應用也可以對此事件注冊一個處理程序并退出。有關如何執行此操作的示例,請參閱下面的代碼。

    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 appApp.Current.Exit(); }

    在用戶按下 Ctrl+Alt+Del 并且登錄屏幕出現后,可能發生以下兩個事項:

  • 用戶知道分配的訪問權限的帳戶密碼并解鎖桌面。分配的訪問權限框架將啟動、鎖定桌面,而且鎖屏界面應用也將啟動,從而啟動展臺應用。
  • 用戶不知道密碼,或不會采取任何進一步的操作。登錄屏幕將超時,桌面也會重新鎖定;鎖屏界面應用將啟動,從而啟動展臺應用。
  • 不要在分配的訪問權限模式下創建新的窗口或視圖

    如果在分配的訪問權限模式下調用以下函數,則該調用將結束,并帶有運行時異常。如果相同的應用(在鎖屏下方使用時)調用此函數,則不會導致運行時異常。使用?LockApplicationHost?有助于確定應用的分配的訪問權限模式,并相應地對你的應用進行編碼,例如,如果應用處于分配的訪問權限模式下,則不會創建新的視圖。

    Windows.ApplicationModel.Core.CoreApplication.CreateNewView(); //causes exception

    附錄

    下面是一個示例應用程序清單,你可以看到 windows.aboveLockScreen UAP 擴展名。必須在你的 Windows 10 通用 Windows 平臺 (UWP) 應用中使用此擴展名,以便它在“設置”的“分配的訪問權限”應用列表中顯示。

    <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="CN=chandde" Version="1.0.0.0" /><mp:PhoneIdentity PhoneProductId="bd4df68b-dc18-4748-a14e-bc21dac13736" PhonePublisherId="00000000-0000-0000-0000-000000000000" /><Properties><DisplayName>AboveLock</DisplayName><PublisherDisplayName>chandde</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>

    總結

    以上是生活随笔為你收集整理的分配的访问权限的展台应用:最佳做法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。