#星计划#自定义GlobalThis进行数据同步【坚果派-狼哥】 原创 精华
目录
1. 前言
在OpenHarmony 3.2 Release版本的配套文档,对应API能力级别为API 9 Release时,使用globalThis进行数据同步:在ArkTS引擎实例内部,globalThis是一个全局对象,可以被ArkTS引擎实例内的UIAbility组件、ExtensionAbility组件和ArkUI页面(Page)访问。但在OpenHarmony 4.0 Release版本的配套文档,对应API能力级别为API 10 Release后,就弃用了globalThis全局对象,如果我们之前的项目里有用到globalThis全局对象,而在新的API 10里不能用了,我们是可以通构造一个单例对象来处理的。这里自定义一下GlobalThis全局对象,通过在GlobalThis对象上绑定属性/方法, 下面通过一个简单实例,全局存储context,存储属性值,存储首选项对象。效果图如下:
2. 自定义GlobalThis单例对象
3. 使用说明
a. 在EntryAbility.ets中导入构建的单例对象GlobalThis。
b. 在onCreate中添加:
c. 在Page中使用:
4. 实现效果图Demo
效果图实例包含两个Page, 一个自定义GlobalThis单例对象。
a. 在ets目录下创建utils目录,并创建GlobalThis.ets文件,代码如上面。
b. 首页面显示在EntryAbility.ets文件onCreate()方法设置好的属性值,context, 首选项数据库.
- onCreate()方法添加代码如下:
- 首页面使用GlobalThis对象,代码如下:
- 导入构建GlobalThis单例对象
首页面显示函数时,从GlobalThis对象获取数据
- 1.
首页面布局代码如下:
- 1.
c. 第二页面使用GlobalThis对象,代码如下:
- 导入构建GlobalThis单例对象
第二页面页面加载前函数时,从GlobalThis获取数据
- 1.
第二页面修改数据代码如下:
- 1.
第二页面布局代码如下:
- 1.
5. 总结
虽然在OpenHarmony 4.0 Release,对应API能力级别为API 10 Release后不能直接使用globalThis全局对象,但通过自定义单例对象后,还是很方便实现属性/方法绑定,在UIAbility和Page之间、UIAbility和UIAbility之间、UIAbility和ExtensionAbility之间都可以使用自构建GlobalThis单例对象上绑定属性/方法,可以实现之间的数据同步。
DAYU 200 OpenHarmony 4.0 Release下视频效果:
https://ost.51cto.com/show/28245