更多内容请访问:https://harmonyos.51cto.com,与华为官方共同打造的鸿蒙技术社区突破题需要实现的功能游戏大致分为以下三个步骤:点击电影卡片跳转到电影列表页面(服务卡开发)点击电影列表中的特定电影跳转到具体电影信息,该窗口实现平行视觉(平行视界服务开发)点击特定电影的信息,将其传输到另一台设备(分布式传输开发)这次给大家分享一下平行视界服务开发的心得(~ ̄▽ ̄)~概览ParallelHorizo??n是窗口交互服务之一,ParallelVision是在以界面为基本单元的应用中实现双窗口显示的系统端解决方案。应用可根据自身业务设计双窗口显示界面组合,实现符合应用逻辑的最佳单应用多窗口用户体验。适用于办公、电子邮件、IM、电子商务等效率应用或需要频繁切换的应用。HarmonyOS支持展开状态下的折叠屏和平板横屏设备的平行视界。用户应用可以根据自己的业务特点设计最佳的双窗组合体验,比如社交应用的“列表+聊天”,购物应用的“双窗比价”等。ParallelHorizo??ns的开发分为两步:在config.json中声明对ParallelHorizo??ns的支持。在src->main->resources->rawfile目录下添加easygo.json配置文件,实现平行水平显示策略配置。正文1.安装配置DevEcoStudio3.0BetaDevEcoStudio3.0Beta下载DevEcoStudio3.0Beta安装2.创建空能力应用DevEcoStudio下载安装成功后,打开DevEcoStudio,点击左上角文件,点击新建,然后选择NewProject,选择EmptyAbility选项,然后单击Next按钮。将文件命名为Mydemo1(文件名不能出现中文或特殊字符,否则工程文件创建不成功),ProjectType选择Application,选择保存路径,Language选择Java,选择API6,选择Tabletfor设备,最后点击完成按钮。选择EmptyAbility配置文件信息3.编写简单逻辑代码代码文件结构如下:在com.test.mydemo1目录下创建RightAbility文件后,代码修改如下:ability_main.xml:ability_right:main->resources->rawfile目录下添加easygo.json配置文件:{"easyGoVersion":"1.0","client":"com.test.mydemo1","logicEntities":[{"head":{"function":"magicwindow","re??quired":"true"},"body":{"mode":"1","abilityPairs":[{"from":"com.test.mydemo1.MainAbility","to":"com.test.mydemo1.RightAbility"}],"能力":[{"name":"com.test.mydemo1.MainAbility","defaultFullScreen":"false"},{"name":"com.test.mydemo1.RightAbility","defaultFullScreen":"false"}],"UX":{"isDraggable":"true"}}}]}上述代码easygo.json配置文件相关元素说明如下:{"easyGoVersion":必填,固定值为"1.0","client":必填,程序的应用包名,"logicEntities":[{"head":{"function":required,调用组件名,固定值为"magicwindow","required":required,保留字段,固定值为"true"},"body":{"mode":必选,基本分屏模式."0":购物模式,abilityPairs节点不生效;"1":自定义模式(包括导航模式),"abilityPairs":[自定义模式需要,从from页面配置到to页面的分屏显示{"from":自定义模式必选,AbilityA的包名,"to":自定义模式必选,AbilityB的包名,}表示在A上启动B,触发分屏(A左B右)],"能力":[optional,应用PageAbility属性列表,{"name":optional,PageAbility包名,"defaultFullScreen":可选,PageAbility是否支持默认全屏启动."true":支持;,"false":不支持},{"name":可选,PageAbility包名,"defaultFullScreen":optional,PageAbility是否默认支持全屏启动。"true":支持;,"false":不支持}],"UX":{optional,页面UX控件配置"isDraggable":optional,是否支持支持分屏窗口拖动(只对平板产品有效)。"true":支持;"false":不支持(默认为false)}}}]}平板横屏运行效果如下:6.添加复杂逻辑代码具体代码见附件,代码文件结构如下:7.完善easygo.json配置文件{"easyGoVersion":"1.0","client":"com.test.mydemo1","logicEntities":[{"head":{"function":"magicwindow","re??quired":"true"},"body":{"mode":"1","abilityPairs":[{"来自“:”com.test。mydemo1.MainAbility","to":"com.test.mydemo1.RightAbility"},{"from":"com.test.mydemo1.RightAbility","to":"com.test.mydemo1.RightAbility2"}],"能力":[{"name":"com.test.mydemo1.MainAbility","defaultFullScreen":"false"},{"name":"com.test.mydemo1.RightAbility","defaultFullScreen":"false"},{"name":"com.test.mydemo1.RightAbility2","defaultFullScreen":"false"},{"name":"com.test.mydemo1.RightAbility3","defaultFullScreen":"false"}],"UX":{"isDraggable":"true"}}}]}平面横屏运行效果如下:图1图2图3总结从上面的easygo.json文件可以看出,配置文件只设置了MainAbility|RightAbility和RightAbility|RightAbility2(A|B表示A左B右分屏),但是下面四个从运行效果可以发现:如果配置了A|B,则在A上启动B并触发双窗显示(A左B右),但在B上启动A不会触发平行水平双窗,如运行文中第五点如果配置了A|B和B|C,但是没有配置A|D的效果,当A左分B右分时,B触发C,B左移,C分显示在右边,即B在左边,C在spl对的;或者在右侧触发D,D会显示在右侧,即A的左右分屏,如图1所示。如果不配置B|D,则D窗口会跟随显示此时B模式。如果此时B是全屏,那么如果此时B是双窗,那么D显示在双窗的右侧,即B的左右分屏,如图2.返回页面切换和跳转到显示页面的过程基本是相反的过程,如图3所示,本次分享到此结束O(∩_∩)O~,Parallel的开发视觉服务还包括购物模式、导航模式、后台锁定等,留着下次用,以后再讨论我一直在文章里陆续分享我的实际操作,我希望能和大家一起学习交流?(?*)更多内容请访问:https://harmonyos.51cto.com