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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

原文: 分配的訪問權(quán)限的展臺應(yīng)用:最佳做法

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

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

條款

術(shù)語描述

分配的訪問權(quán)限

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

鎖屏界面應(yīng)用(或鎖屏應(yīng)用)

利用設(shè)置動態(tài)壁紙功能或利用新的鎖屏可擴(kuò)展性框架的應(yīng)用程序。

上方鎖屏界面應(yīng)用(或上方鎖屏應(yīng)用)

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

下方鎖屏應(yīng)用

在已解鎖的 Windows 上下文中正常運(yùn)行的應(yīng)用程序。

LockApplicationHost

允許上方鎖屏界面應(yīng)用請求設(shè)備解鎖并允許應(yīng)用進(jìn)行注冊以便在設(shè)備開始解鎖時收到系統(tǒng)通知的 WinRT 類。

視圖或應(yīng)用程序視圖

每個視圖都是應(yīng)用中的一個獨立窗口。應(yīng)用可以擁有一個主視圖,并可根據(jù)需要創(chuàng)建多個輔助視圖。有關(guān)詳細(xì)信息,請參閱?ApplicationView。

?

在后臺

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

當(dāng)鎖屏框架啟動鎖屏上方的展臺應(yīng)用時,它將為展臺應(yīng)用創(chuàng)建新的輔助視圖,并在新的輔助視圖中呈現(xiàn)其所有主視圖。

必須在應(yīng)用程序清單文件中使用?windows.aboveLockScreen?擴(kuò)展,才能使你的應(yīng)用顯示在“設(shè)置”的“分配的訪問權(quán)限”中。有關(guān)應(yīng)用程序清單的示例,請參閱附錄

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

最佳做法

保護(hù)你的信息

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

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

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

    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);} }

    多個視圖、窗口和線程

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

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

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

    下面是示例布局。

    調(diào)度程序

    每個視圖或窗口都有其自己的調(diào)度程序。在分配的訪問權(quán)限模式下,不應(yīng)使用?MainView?調(diào)度程序,應(yīng)改為使用?CurrentView?調(diào)度程序。

    例如,在以下代碼示例中,.xaml 頁面上有一個“按鈕”和一個?TextBlock。向該按鈕添加單擊事件處理程序。該處理程序會執(zhí)行一些后臺工作,然后更新?TextBlock的文本。在此示例中使用?CoreApplication.MainView.Dispatcher?將導(dǎo)致應(yīng)用崩潰,因為在分配的訪問權(quán)限模式下,主窗口不是?MainView,但在輔助視圖中呈現(xiàn)。建議你使用?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;}); }

    添加除分配的訪問權(quán)限之外的方法

    在某些情況下,用于停止應(yīng)用程序的電源按鈕、Esc 按鈕或其他按鈕可能在鍵盤上無法啟用或不可用。在這些情況下,請?zhí)峁┮环N方法來停止分配的訪問權(quán)限,例如軟件鍵。以下事件處理程序顯示了如何通過響應(yīng)可能由軟件鍵觸發(fā)的按鈕單擊事件來停止分配的訪問權(quán)限模式。

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

    生命周期管理

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

    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 并且登錄屏幕出現(xiàn)后,可能發(fā)生以下兩個事項:

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

    如果在分配的訪問權(quán)限模式下調(diào)用以下函數(shù),則該調(diào)用將結(jié)束,并帶有運(yùn)行時異常。如果相同的應(yīng)用(在鎖屏下方使用時)調(diào)用此函數(shù),則不會導(dǎo)致運(yùn)行時異常。使用?LockApplicationHost?有助于確定應(yīng)用的分配的訪問權(quán)限模式,并相應(yīng)地對你的應(yīng)用進(jìn)行編碼,例如,如果應(yīng)用處于分配的訪問權(quán)限模式下,則不會創(chuàng)建新的視圖。

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

    附錄

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

    <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>

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。