應用程式模型

Windows Mixed Reality 使用通用 Windows 平臺 (UWP) 所提供的應用程式模型,這是新式 Windows 應用程式的模型和環境。 UWP 應用程式模型定義了如何安全地安裝、更新、設定版本,以及完全移除應用程式。 它也會控制應用程式的生命週期,也就是應用程式執行、睡眠和停止的方式,以及它們如何保留狀態。 最後,應用程式模型涵蓋與作業系統、檔案和其他應用程式的整合和互動。

2D apps arranged in the Windows Mixed Reality home in a breakfast area
在 Windows Mixed Reality 首頁中排列2d 視圖的應用程式

應用程式週期

混合現實應用程式的生命週期牽涉到標準應用程式概念,例如放置、啟動、終止和移除。

放置開始

每個應用程式都是以混合現實的方式啟動,方法是將應用程式磚放 (Windows Mixed Reality 首頁中的Windows 次要磚) 。 這些應用程式圖格會在放置時開始執行應用程式。 這些應用程式磚會保存並保持在其放置位置,如同您想要傳回給應用程式的啟動器。

Placement puts a secondary tile in the world
放置會將次要磚放在世界中

放置完成之後 (除非應用程式 啟動應用程式啟動) ,否則應用程式會開始啟動。 Windows Mixed Reality 可以一次執行有限數量的應用程式。 一旦您放置並啟動應用程式,其他作用中的應用程式可能會暫停。 已暫停的應用程式會在您放置應用程式的任何位置,讓應用程式的上次狀態螢幕擷取畫面。 如需處理繼續和其他生命週期事件的詳細資訊,請參閱Windows 10 UWP 應用程式生命週期

After placing a tile, the app starts runningState diagram for app running, suspended or not running
左方:放置磚之後,應用程式就會開始執行。 Right:應用程式執行中、已暫止或未執行的狀態圖表。

移除是關閉/終止進程

當您從世界中移除放置的應用程式磚時,基礎進程會關閉。 這有助於確保您的應用程式停止或重新開機有問題的應用程式。

應用程式暫停/終止

Windows Mixed Reality 首頁中,使用者可以從 [開始] 功能表啟動應用程式,並將應用程式磚放在世界中,以建立應用程式的多個進入點。 每個應用程式磚的行為都是不同的進入點,並且在系統中具有個別的磚實例。 SecondaryTile的查詢會針對每個應用程式實例產生SecondaryTile

當 UWP 應用程式暫停時,會取得目前狀態的螢幕擷取畫面。

Screenshots are shown for suspended apps
針對已暫止的應用程式顯示幕幕快照

另一個 Windows 10 shell 的主要差異在於應用程式如何透過 CoreApplication 來通知應用程式實例啟用

案例 繼續中 已啟動
從 [開始] 功能表啟動應用程式的新實例 以新的TileId啟用
從 [開始] 功能表啟動應用程式的第二個實例 以新的TileId啟用
選取目前未使用的應用程式實例 使用與實例相關聯的TileId啟用
選取不同的應用程式,然後選取先前作用中的實例 繼續 引發
選取不同的應用程式,然後選取先前處於非使用中狀態的實例 繼續 引發 然後使用與實例相關聯的TileId啟用

擴充執行

有時候您的應用程式需要繼續在背景中執行工作或播放音訊。 背景工作可在 HoloLens 上取得。

Apps can run in the background
應用程式可以在背景中執行

應用程式檢視

當您的應用程式啟動時,您可以選擇您想要顯示的檢視類型。 針對應用程式的 CoreApplication,一律會有主要的 應用程式視圖 ,以及您想要建立的任意數目的應用程式視圖。 在桌上型電腦上,您可以將應用程式視圖視為視窗。 我們的混合現實應用程式範本會建立 Unity 專案,其中主要應用程式視圖為 沉浸式

您的應用程式可以使用 XAML 之類的技術來建立額外的2d 應用程式視圖,以使用應用程式內購買的 Windows 10 功能。 如果您的應用程式啟動為其他 Windows 10 裝置的 UWP 應用程式,您的主要視圖是2d。 不過,您可以藉由新增另一個可輕鬆顯示體驗 volumetrically 的應用程式視圖,在混合現實中「亮亮」。 Imagine 在 XAML 中建立相片檢視器應用程式,其中的投影片按鈕會切換至沉浸式應用程式視圖,從世界各地的應用程式 flew 相片。

The running app can have a 2D view or an immersive view
執行中的應用程式可以有2D 視圖或沉浸式視圖

建立沉浸式視圖

混合現實應用程式會建立具有 HolographicSpace 類型的沉浸式觀看。

純粹是沉浸式的應用程式應該一律在啟動時建立沉浸式視圖,即使是從桌面啟動也一樣。 沉浸式視圖一律會顯示在耳機中,不論其建立位置為何。 啟用沉浸式視圖會顯示混合實境入口,並引導使用者進入其耳機。

在桌上型電腦監視器上以2D 視圖開頭的應用程式,可能會建立次要的沉浸式視圖,以顯示耳機中的內容。 其中一個範例是監視器上的 2D Edge 視窗,會在耳機中顯示360度的影片。

Apps running in immersive view are the only one visible
在沉浸式視圖中執行的應用程式是唯一可見的

Windows Mixed Reality 首頁中的2d 視圖

沉浸式觀賞以外的任何功能都會轉譯為您世界上的2D 觀點。

在桌上型電腦監視器和耳機中,應用程式可能會有2D 的視圖。 新的2D 視圖將放置在與建立它的視圖相同的 shell 中,不論是在監視器上或在耳機中。 應用程式或使用者目前無法在混合現實首頁與監視器之間移動2D 視圖。

Apps running in 2D view share the space in the mixed world with other apps
在2D 視圖中執行的應用程式與其他應用程式共用空間

其他應用程式磚的位置

您可以視需要使用 次要磚 api,將多個應用程式放在世界各地的 2d view。 這些「釘選」的磚會顯示為使用者必須放置的啟動顯示畫面,之後可用來啟動您的應用程式。 Windows Mixed Reality 目前不支援將任何2d 磚內容轉譯為動態磚。

Apps can have multiple placements using secondary tiles
使用次要磚的應用程式可以有多個放置

切換視圖

從 2D XAML 視圖切換至沉浸式視圖

如果應用程式使用 XAML,則 XAML IFrameworkViewSource 會控制應用程式的第一個視圖。 應用程式必須在啟用 CoreWindow之前切換至沉浸式觀賞,以確保應用程式直接啟動至沉浸式體驗。

使用 CoreApplication. CreateNewViewApplicationViewSwitcher ,讓它成為使用中的視圖。

注意

  • 從 XAML 視圖切換至沉浸式視圖時,請勿指定SwitchAsyncApplicationViewSwitchingOptions ConsolidateViews旗標,或啟動應用程式的平板將從世界中移除。
  • SwitchAsync 應該使用與您要切換的視圖關聯的 發送器 來呼叫。
  • 如果您需要啟動虛擬鍵盤或想要啟用另一個應用程式,則必須 SwitchAsync 回 XAML 視圖。

Apps can switch between 2D views and immersive viewsWhen an app goes into an immersive view, the mixed world and other apps disappear
左方:應用程式可以在2D 視圖和沉浸式視圖之間切換。 沒錯:當應用程式進入沉浸式觀看時,Windows Mixed Reality 首頁和其他應用程式會消失。

從沉浸式視圖切換回鍵盤 XAML 視圖

在 views 之間來回切換的一個常見原因,是在混合現實應用程式中顯示鍵盤。 只有當應用程式顯示2D 視圖時,shell 才能顯示系統鍵盤。 如果應用程式需要取得文字輸入,它可能會提供具有文字輸入欄位的自訂 XAML 視圖、切換至該視窗,然後在輸入完成之後切換回來。

如同上一節中所示,您可以使用 ApplicationViewSwitcher SwitchAsync 從您的沉浸式視圖轉換回 XAML 視圖。

應用程式大小

2D 應用程式視圖一律會出現在固定的虛擬平板中。 這會讓所有2D 視圖顯示完全相同的內容數量。 以下是應用程式2D 視圖大小的進一步詳細資料:

  • 調整應用程式時,會保留應用程式的外觀比例。
  • 應用程式 解析度和縮放比例 不會因調整大小而變更。
  • 應用程式無法在世界中查詢其實際大小。

2D apps appear with fixed window sizes
具有2D 視圖的應用程式會以固定的視窗大小顯示

應用程式磚

此 [開始] 功能表會針對釘選和所有應用程式清單,使用標準的小型磚和中等磚。

The Start menu for Windows Mixed Reality
Windows Mixed Reality 的 [開始] 功能表

應用程式與應用程式的互動

當您建立應用程式時,您可以存取 Windows 10 上可用的應用程式通訊機制的豐富應用程式。 許多新的通訊協定 api 和檔案註冊都能在 HoloLens 上完美運作,以啟用應用程式啟動和通訊。

針對桌上型耳機,與指定副檔名或通訊協定相關聯的應用程式可能是 Win32 應用程式,只能出現在桌面監視器或桌上型電腦平板中。

通訊協定

HoloLens 支援透過 Windows 透過應用程式啟動應用程式。系統。Launcher api

啟動另一個應用程式時,需要考慮一些事項:

  • 執行非強制回應啟動(例如 LaunchUriAsync)時,使用者必須先放置應用程式,才能與其互動。

  • 執行強制回應啟動時(例如透過 LaunchUriForResultsAsync),會將強制回應應用程式放在視窗頂端。

  • Windows Mixed Reality 無法在專屬的視圖上重迭應用程式。 為了顯示已啟動的應用程式,Windows 會將使用者帶回世界以顯示應用程式。

檔案選擇器

HoloLens 支援FileOpenPickerFileSavePicker合約。 不過,尚未預先安裝任何應用程式來滿足檔案選擇器合約。 例如,您可以從 Microsoft Store 安裝這些應用程式 OneDrive。

如果您已安裝多個檔案選擇器應用程式,您將不會看到任何可供選擇要啟動之應用程式的混淆 UI。 相反地,系統會選擇第一個安裝的檔案選擇器。 儲存檔案時,會產生包含時間戳記的檔案名。 這無法由使用者變更。

根據預設,下列是在本機支援的延伸模組:

應用程式 延伸模組
照片 bmp、gif、jpg、png、avi、mov、的 wmv、wmv
Microsoft Edge htm、html、pdf、svg、xml

應用程式合約和 Windows Mixed Reality 擴充功能

應用程式合約和擴充點可讓您註冊應用程式,以利用更深入的作業系統功能,例如處理副檔名或使用背景工作。 這是 HoloLens 上支援和不支援的合約和擴充點的清單。

合約或延伸模組 是否支援?
帳戶圖片提供者 (延伸模組) 不支援
警示 不支援
App Service 支援但無法完全運作
約會提供者 不支援
自動播放 (延伸模組) 不支援
(擴充功能的背景工作) 部分支援的 (並非所有觸發程式都可運作)
更新工作 (延伸模組) 支援
快取檔案更新程式合約 支援
(擴充功能的相機設定) 不支援
撥號通訊協定 不支援
檔案啟用 (延伸模組) 支援
檔案開啟選擇器協定 支援
檔案儲存選擇器協定 支援
鎖定螢幕呼叫 不支援
媒體播放 不支援
播放至合約 不支援
預先安裝的設定工作 不支援
Print 3D 工作流程 支援
(擴充功能) 列印工作設定 不支援
URI 啟用 (延伸模組) 支援
受限啟動 不支援
搜尋合約 不支援
設定合約 不支援
共用合約 不支援
SSL/憑證 (延伸模組) 支援
Web 帳戶提供者 支援

應用程式檔儲存體

所有儲存體都會透過Windows 儲存體命名空間。 HoloLens 不支援應用程式儲存體同步/漫遊。 如需詳細資訊,請參閱下列檔:

已知的資料夾

如需 UWP 應用程式的完整詳細資料,請參閱 KnownFolders

屬性 支援 HoloLens 在沉浸式耳機上支援 描述
AppCaptures✔️✔️取得應用程式的 [捕獲] 資料夾。
CameraRoll✔️✔️取得相機翻轉資料夾。
DocumentsLibrary✔️✔️取得文件庫。 文件庫並非一般用途。
MusicLibrary✔️✔️取得音樂媒體櫃。
Objects3D✔️✔️取得物件3D 資料夾。
PicturesLibrary✔️✔️取得圖片媒體櫃。
播放清單✔️✔️取得播放清單資料夾。
SavedPictures✔️✔️取得已儲存的圖片資料夾。
VideosLibrary✔️✔️取得影片庫。
HomeGroup✔️取得家庭家庭資料夾。
MediaServerDevices✔️取得媒體伺服器的資料夾 (數位生活網路聯盟 (DLNA) ) 裝置。
RecordedCalls✔️取得錄製的呼叫資料夾。
RemovableDevices✔️取得「卸載式裝置」資料夾。

應用程式套件

使用 Windows 10 時,您不再以作業系統為目標,而是將應用程式的目標設為一或多個裝置系列。 裝置系列會識別 API、系統特性以及您對於裝置系列中的裝置可以預期的行為。 它也會決定您的應用程式可從Microsoft Store安裝的裝置集合。

  • 若要以桌面耳機和 HoloLens 為目標,請將您的應用程式設為Windows。通用裝置系列。
  • 若要只以桌上型耳機為目標,請將您的應用程式設為目標Windows。桌面裝置系列。
  • 若要將目標設為僅 HoloLens,請將您的應用程式設定為Windows。全像裝置系列

另請參閱