如何创建可在Windows,iOS和Android上协同工作的应用程序

微软可能不再有移动操作系统,但这并不意味着它已经放弃了移动市场。 相反,它采用了不同的方法: 在其平台上构建,以将Windows和Microsoft 365与我们都在使用的设备集成在一起 。 这意味着需要重新专注于自己的工具,包括iOS和Android版本的Edge浏览器,适用于Android的Microsoft Launcher,无处不在的Office应用程序以及可将设备内容复制到PC上的新版Your Phone Windows应用程序。

将自己的移动生态系统加倍是很有道理的,因为微软需要让用户使用自己的应用程序,而不是让他们滑向苹果或谷歌的竞争对手。 但是移动设备只是微软业务的一部分,而Windows台式机仍然是其收入的重要部分。 这就是Project Rome的来历,它是一种跨同一应用程序的不同版本获取数据并控制另一个应用程序的方法。 (是的,“罗马计划”这个名字是一个双关语。)

[构建移动应用程序的方法不止一种。 查看25个用于快速构建移动应用程序的简单工具 | 通过InfoWorld的App Dev Report新闻通讯了解编程中最热门的话题。 ]

一个示例是Windows 10的最新版本中的Windows时间轴。时间轴使您可以浏览Web历史记录以及最新的Office文档。 它建立在Microsoft Graph之上, Microsoft Graph是一组API和云托管的存储,用于在设备之间交换信息。 苹果公司在2014年推出iOS和MacOS的Handoff功能时,InfoWorld便将其称为“ 液体计算 ”概念。

使用时间轴,您不仅可以在一台PC上使用Office文件; 您可以从使用同一Microsoft帐户的所有PC上看到它们。 您的网络历史记录也是如此,内容不仅来自我的PC,还来自我的iOS和Android版本的Edge。 就像Apple的iCloud或Google的Google帐户服务一样,除了它在Windows PC,iOS设备和Android设备(而非Mac)上本机运行。

Windows团队将Project Rome视为一种将应用程序体验与设备分离的方式,使您的上下文在设备之间传递的方式与OneDrive和其他云服务从PC提取数据的方式几乎相同。

罗马项目中有三个关键要素: 设备中继活动/时间轴Microsoft Graph通知 。 它们涵盖了保留上下文的大多数关键方法,为开发人员提供了在不同设备上的不同版本代码之间转移动作和状态所需的工具。 除了在自己的应用程序中使用它们之外,Microsoft还为开发人员发布了一系列Project Rome SDK,以帮助将这些功能添加到自己的代码中,从而将Windows应用程序与iOS和Android设备链接起来。

微软最近完成了Android和iOS Project Rome SDK的最终确定,将它们从Beta移到了生产版本。 尽管需要做更多的工作来将移动平台功能公开给Windows,但要开始使用的功能还远远不够。 您可以在Bintray(适用于Android)Cocoapods(适用于iOS)上找到SDK,并在GitHub上找到示例代码,以帮助您入门。 Windows和Xamarin开发人员可以在nuget或Windows SDK中找到SDK。

使用Project Rome的设备中继

设备中继可能是最有趣的情况。 使用时,一次设备可以控制另一个设备。 这就是Microsoft如何使用熟悉的Windows UWP应用程序将其Your Phone设备从Android手机发送SMS消息的方式保持在键盘上。 通过这种方式控制远程设备可以帮助您完成主要任务,从而减少了在购买新设备时流量丢失的风险。

Project Rome SDK支持两种设备中继方案。 首先, 远程启动 ,从一个设备启动另一个设备上的应用程序。 微软用来在Surface Hub上启动OneNote笔记本,或在智能手机,台式机和Surface Hub上的Teams会议之间切换的技术。 第二种是应用程序服务 ,它提供了一种在两个设备之间建立内容管道的方法,因此您可以在两个应用程序之间发送消息。

无论您使用的是iOS还是Android,构建一个可以利用这些功能的应用程序都相对简单。 但是,某些应用程序通常无法通过设备中继进行控制,这通常是由于其应用程序开发人员做出了安全性选择。

使用Project Rome服务注册应用

应用程序需要通过Microsoft帐户进行身份验证才能使用Project Rome功能并访问基础的Connected Devices Platform。 您还需要向Microsoft注册您的应用,以获取访问所需的客户端ID。 还需要在Windows Dev Center中注册应用程序以进行跨设备体验,即使它们是Android或iOS应用程序也是如此。 注册它们还会设置对其他受支持平台的支持,将应用程序ID链接起来,以便Connected Devices Platform知道您的代码将使用的不同平台。

注册后,您可以将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上启动演示文稿,则可以在特定的幻灯片上将其打开。

远程应用程序服务需要更多工作。 您的代码需要将服务公开给Connected Devices Platform,以便应用程序可以通过服务端点进行通信。 建立连接后,您可以使用消息有效负载来处理二进制编码的内容,从而与服务之间来回发送消息。 Project Rome消息格式使用键/值对来控制应用程序,并带有简单的响应以指示该任务已由远程控制服务执行。

罗马计划(Project Rome)的SDK提供了更多功能,其中包括利用Microsoft Graph等技术来处理更复杂场景的工具。 但是,SDK和“连接的设备平台”最重要的方面不是您可以连接在不同平台上运行的应用程序,而是安全地进行操作实际上很容易。 这是向异构未来迈出的一大步,在未来,应用程序和设备的重要性不如我们对它们的处理。

From: https://www.infoworld.com/article/3340130/how-to-create-apps-that-work-together-across-windows-ios-and-android.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值