如何創建跨Windows,iOS和Android協同工作的應用程序

如何創建跨Windows,iOS和Android協同工作的應用程序

微軟可能不再擁有移動操作系統,但這並不意味著它已經放棄了移動市場。相反,它採取了不同的方法:在其平臺上構建,將Windows和Microsoft 365與我們所有使用的設備集成。這意味著重新關注自己的工具,包括iOS和Android版本的Edge瀏覽器,Android的微軟啟動器,以及無處不在的Office應用程序,以及將設備內容複製到PC上的新的windows應用程序。

加倍自己的移動生態系統很有意義,因為微軟需要讓用戶保持自己的應用程序,而不是讓他們轉向蘋果或谷歌的競爭對手。但移動只是微軟業務的一部分,Windows桌面仍然是其收入的重要組成部分。這就是Project Rome(羅馬項目)的用武之地,它是一種在同一個應用程序的不同版本中獲取數據並從另一個應用程序控制一個應用程序的方法。(而且,是的,羅馬項目名稱是一個可怕的雙關語。)

一個示例是最新版本的Window 10中的Windows時間軸。時間軸允許您瀏覽Web歷史記錄以及最近的Office文檔。它建立在Microsoft Graph之上,這是一組API和雲託管存儲,用於在設備之間交換信息。當Apple於2014年首次推出時,稱作“ 液體計算 ” 概念,作為iOS和MacOS中的Handoff功能。

使用時間軸,您不僅限於一臺PC上的Office文件; 您可以從使用相同Microsoft帳戶的所有PC上看到它們。您的網絡歷史記錄也是如此,其內容不僅來自我的電腦,還來自我的iOS和Android版本的Edge。這就像Apple的iCloud或谷歌的Google帳戶服務,除了它可以在Windows PC,iOS設備和Android設備(但不是Mac)上本地運行。

Windows團隊將“羅馬項目”視為一種將應用程序體驗與設備分離的方式,將您的上下文從設備轉移到設備,其方式與OneDrive和其他雲服務一樣,將您的數據從PC中抽象出來。

“羅馬項目”中有三個關鍵元素:設備中繼,活動/時間線和Microsoft Graph通知。它們涵蓋了保留上下文的大多數關鍵方法,為開發人員提供了在不同設備的不同版本的代碼之間傳輸操作和狀態所需的工具。除了在自己的應用程序中使用它們之外,Microsoft還為開發人員發佈了一系列“羅馬項目” SDK,以幫助將這些功能添加到他們自己的代碼中,將Windows應用程序與iOS和Android設備相關聯。

微軟最近完成了Android和iOS Project Rome SDK,將它們從beta版發佈到了生產版。雖然要向Windows公開移動平臺功能還有很多工作要做,但這裡還有很多工作要做。您可以在Bintray for Android和Cocoapods for iOS上找到SDK,GitHub上的示例代碼可以幫助您入門。Windows和Xamarin開發人員可以在nuget或Windows SDK中找到SDK。

使用Project Rome的設備繼電器

設備中繼可能是最有趣的場景。使用它時,一旦設備可以控制另一個。這就是微軟使用其手機設備從Android手機發送短信的方式,使用熟悉的Windows UWP應用程序將手放在鍵盤上。以這種方式控制遠程設備可幫助您保持接近主要任務,從而降低在您拿起新設備時丟失流量的風險。

Project Rome SDK支持兩種設備中繼方案。第一個遠程啟動,在另一個設備上啟動應用程序。這是微軟用於在Surface Hub上啟動OneNote筆記本電腦或在智能手機,臺式電腦和Surface Hub之間切換團隊會議的技術。第二種應用服務提供了一種在兩個設備之間設置內容管道的方法,因此您可以在兩個應用之間發送消息。

無論您是在iOS上還是在Android上工作,構建可以利用這些功能的應用程序都相對簡單。但是,某些應用程序無法通過設備中繼進行控制,通常是由應用程序開發人員做出的安全選擇。

使用Project Rome服務註冊應用程序

應用程序需要通過Microsoft帳戶進行身份驗證才能使用Project Rome功能,並訪問底層的連接設備平臺。您還需要向Microsoft註冊您的應用程序,以獲取訪問所需的客戶端ID。應用程序還需要在Windows開發人員中心註冊跨設備體驗,即使它們是Android或iOS應用程序。註冊它們還會為您的其他支持平臺提供支持,鏈接應用程序ID,以便連接設備平臺瞭解您的代碼將使用的不同平臺。

註冊後,您可以在應用程序中包含Project Rome Connected Devices SDK,並配置具有Internet訪問權限,網絡狀態和藍牙權限的應用程序清單。您不一定需要設置藍牙訪問權限,因為它僅用於藍牙發現和藍牙設備到設備連接。如果您只使用Wi-Fi,則無需藍牙訪問權限。

應用使用OAuth通過Connected Devices Platform進行身份驗證,因此用戶需要擁有Azure Active Directory或Microsoft帳戶才能生成令牌。作為令牌請求的一部分,您需要請求一些權限來處理連接,並且您需要訪問服務使用的某些Microsoft服務器。推送通知由適用於您設備的服務處理,因此,例如,Android應用需要在Google的Firebase消息服務中註冊。

通過連接設備平臺進行通信

您的代碼還需要訂閱一系列通知,以處理來自平臺的消息。Project Rome的大部分功能都是通過消息傳遞來處理的,因此您需要使用異步事件處理來處理該服務。連接後,您需要發現遠程設備,這些設備將返回屬於登錄用戶的已註冊設備列表。每個設備都與一個由觀察者對象管理的事件監聽器相關聯。

獲得設備列表後,您可以將數據傳遞給它們; 例如,發送特定於應用程序的URI以啟動應用程序。如果應用程序支持更復雜的URI,您可以使用它們來設置狀態或觸發函數。例如,如果您從智能手機在Surface Hub上啟動演示文稿,則可以在特定幻燈片中打開它。

遠程應用服務需要更多工作。您的代碼需要向連接的設備平臺公開服務,以便應用程序可以通過服務端點進行通信。設置連接後,您可以使用消息有效負載處理二進制編碼的內容,從而向服務發送消息和從服務發送消息。Project Rome消息格式使用鍵/值對來控制應用程序,通過簡單的響應來指示任務已由遠程控制的服務執行。

Project Rome的SDK中還有很多功能,它們可以利用Microsoft Graph等技術處理更復雜的場景。但是,SDK和連接設備平臺最重要的方面並不是您可以連接在不同平臺上運行的應用程序,而是實際上很容易安全地執行它。這是向異構未來邁出的一大步,應用程序和設備不像我們使用它們那麼重要。

注:來源信息世界,作者Simon Bisson,由碼上團隊編譯,如有錯誤,請聯繫修改。


分享到:


相關文章: