#夏日挑战赛#【FFH】分布式任务调度应用拉起实现(OpenHarmony JS 原创 精华
#夏日挑战赛#【FFH】分布式任务调度之应用拉起(OpenHarmony JS UI版)
Demo效果展示
我们这次实操的最终效果就像上面一样,就是在设备A的屏幕上点击“流转FA”按钮,就终止设备A的FA并且拉起设备B的FA。
我们先分解一下这个demo的开发步骤,首先就是点击按钮需要识别到组网内的设备,然后进行设备选择,最后就实现流转。内容很简单,关键的就是在设备识别
,以及流转API调用
。下面我们来看看实际开发。
具体实现
具体的开发可以分为一下几个关键步骤:
- 获取分布式数据同步权限
- 设备管理类封装
- 设备识别函数实现以及流转函数实现
- 编写界面样式以及事件绑定
1.获取分布式数据同步权限
如果应用程序需要某些权限,例如存储、位置信息和日志访问权限,则应用程序必须向终端用户请求对应权限。确定需要的权限后,在config.json文件中添加权限。本例中,需要获取分布式数据同步权限,因此,需要在config.json中请求添加分布式数据同步权限,修改config.json文件如下:
代码段具体添加的位置如下图:
同时,在页面代码段中申请用户权限:
编写一个申请权限函数,然后再初始化页面时调用,具体代码如下所示。
2.设备管理类封装
这个类库是通用的,凡涉及到需要识别组网内设备,并且进行设备管理的,都可以调用此类库,并且这个类在官方Gitee上的案例都有,这边我们就直接使用Gitee上的设备管理类,创建远程设备模型来进行操作。
我们先像上图一样创建一个model文件夹,把我们要调用的类放在这里面就行,代码如下:
3.设备识别函数实现
效果如下:
在点击“流转FA”按钮的时候,我们要做的当然显示组网内在线设备的列表,其中这些设备需要经过安全认证,也就是我们刚刚封装的设备管理类的处理,下面我们就简单编写一下设备识别函数。
核心思想是调用设备管理类的registerDeviceListCallback( )函数获取到设备列表,然后在data里面进行声明,最终在界面用Dialog组件进行渲染。
首先我们要导入上面提到的类,并且在data中创建一个设备管理器类:
点击屏幕上的按钮后,调用如下函数:
4.流转函数实现
流转的实现主要是调用@ohos.ability.featureAbility
里的相关API。首先我们要导入featureAbility这个包
接着就是流转函数的编写,在编写之前,我们现在看看几个要注意的点,我们要调用的是@ohos.ability.featureAbility中的startAbility,这个接口需要一个对象作为参数,这个对象的属性包括bundleName(可以在config.json文件中查看),abilityName以及deviceId。其中要注意的事abilityName是Package名称(可以在config.json文件中查看)加上ability的名称
(这一部分区别于HarmonyOS)。如下,我的Package名称是’com.example.entry’,ability名称是’MainAbility’,那么我的ablityName这个属性就是’com.example.entry.MainAbility’
接着就是监听Radio组件的变化进行流转,这个方法绑定到监听Radio变化的事件上即可实现流转,代码如下:
5.界面样式设计以及事件绑定
关闭Dialog函数:
Hml页面代码:
CSS页面代码:
完成上述代码后,将真机连接WiFi,然后在系统的音乐播放器上进行组网认证,再打开上述应用实例,就可以实现流转效果了。
结尾
我们上面的Demo是基于FA模型的,但是最近的更新了基于API9 的Stage模型,官方给出的Stage模型的设计原因如下:
Stage模型的设计,主要是为了解决FA模型无法解决的开发场景问题,方便开发者更加方便地开发出分布式环境下的复杂应用。
比如在Stage模型中,我们要复现上面的这个demo,我们可能只需要一半甚至更少的代码量。可见,Stage模型是我们北向后面分布式开发的一个趋势。
后面我们再一起来学习Stage模型开发吧。
666,这个好玩
写的很详细,收藏一个!