• Home
Name Date Size #Lines LOC

..--

AppScope/12-May-2024-3532

entry/12-May-2024-2,6802,478

hvigor/12-May-2024-4,7274,442

screenshots/12-May-2024-

.gitignoreD12-May-2024119 1111

README_zh.mdD12-May-20247 KiB152104

build-profile.json5D12-May-20241.1 KiB4342

hvigorfile.tsD12-May-2024768 171

hvigorwD12-May-20241.4 KiB4928

hvigorw.batD12-May-20241.5 KiB6547

oh-package.json5D12-May-2024879 2826

ohosTest.mdD12-May-20243.6 KiB1511

README_zh.md

1# 基础能力增强
2
3### 介绍
4
5本示例使用  [ohos.app.ability.appManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-appManager-sys.md), [UIAbilityContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-inner-application-uiAbilityContext-sys.md) , [UIExtensionContentSession](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-uiExtensionContentSession-sys.md) 等接口实现了以下功能:
6
71. 提供查询单个应用是否正在运行接口;
8
92. 新增系统接口请求创建模系统或模应用的UIExtension;
10
113. UIExtension支持同步返回数据的能力;
12
134. 提供隐式启动UIExtension接口;
14
156. UIExtension提供StartAsCaller接口;
16
17### 效果预览
18
19|                              主页面                               |                           弹出状态Toast                            |                             同步数据页面                             |                         UIExtension启动页                         |
20|:--------------------------------------------------------------:|:--------------------------------------------------------------:|:--------------------------------------------------------------:|:--------------------------------------------------------------:|
21| <img src="./screenshots/Screenshot_20231208091732705.jpeg"  /> | <img src="./screenshots/Screenshot_20231208091801521.jpeg"  /> | <img src="./screenshots/Screenshot_20231208091750553.jpeg"  /> | <img src="./screenshots/Screenshot_20231208091848484.jpeg"  /> |
22
23使用说明
24
251.应用查询单个应用是否正在运行的能力
26
27点击''查询应用状态'的ListItem,弹出Toast提示'当前应用运行中'
28
292.UIExtension创建模系统或模应用
30
31点击'创建模系统'的ListItem,弹出UIExtension的页面弹窗
32
333.UIExtension支持同步返回数据的能力
34
35点击'同步发送数据'的ListItem,进入到新页面再次点击'同步发送数据'的ListItem,UIAbility部分弹出Toast提示'HomeAbility
36onReceive data from UIExtensionAbility',UIExtensionAbility 部分弹出Toast提示'UIExtensionAbility onReceive data from
37HomeAbility'
38
394.UIExtension提供隐式启动startAbilityByType的能力
40
41点击启动启动UIExtensionAbility'的ListItem,进入到新页面,在新页面点击'启动AbilityByType'的ListItem,应用启动NewUIExtAbility
42
435.UIExtension提供startAbilityAsCaller的能力
44
45点击启动启动UIExtensionAbility'的ListItem,进入到新页面,在新页面点击'启动AbilityAsCaller'的ListItem,应用启动NewAbility
46
47### 工程目录
48
49```
50entry/src/main/ets/
51|---entryability
52|   |---EntryAbility.ets				// 首页的Ability
53|---pages
54|   |---Index.ets						// 首页
55|   |---Ext.ets							// UIExtensionAbility的展示页
56|   |---NewExt.ets						// 被启动的UIExtensionAbility的页面
57|   |---New.ets							// 被启动UIAbility的展示页
58|   |---Transit.ets						// UIExtensionComponent加载NewUIExtAbility的页面
59|   |---SendSync.ets					// UIExtensionComponent加载SendSyncExtAbility的页面
60|   |---SendSyncExt.ets					// 同步数据UIExtensionAbility的展示页
61|---uiextability
62|   |---UIExtAbility.ets				// UIExtensionAbility(用于验证新接口使用)
63|---sendsyncextability
64|   |---SendSyncExtAbility.ets			// UIExtensionAbility(用于验证新接口使用)
65|---newuiextability
66|   |---NewUIExtAbility.ets				// UIExtensionAbility(用于验证新接口使用)
67|---newability
68|   |---NewAbility.ets					// 被启动的UIAbility(验证新接口启动使用)
69|---utils								// 工具
70|   |---Logger.ets						// 日志工具
71```
72
73### 具体实现
74
75- 应用查询单个应用是否正在运行的能力,通过appManager调用isApplicationRunning(bundleName: string, callback:
76  AsyncCallback<boolean>): void方法查询应用状态, 源码参考:[Index.ets](entry/src/main/ets/pages/Index.ets)
77- UIExtension创建模系统或模应用,通过UIAbilityContext调用requestModalUIExtension(pickerWant: Want, callback:
78  AsyncCallback<void>): void方法拉起UIExtensionAbility, 源码参考:[Index.ets](entry/src/main/ets/pages/Index.ets)
79- UIExtension支持同步返回数据的能力,通过UIExtensionProxy调用sendSync(data: { [key: string]: Object }): { [key: string]:
80  Object }接口实现,源码参考:[SendSync.ets](entry/src/main/ets/pages/SendSync.ets)
81- UIExtension提供隐式启动startAbilityByType的能力,通过UIExtensionContentSession调用startAbilityByType(type: string,
82  wantParam: Record<string, Object>, abilityStartCallback: AbilityStartCallback, callback: AsyncCallback<void>):
83  void接口实现 ,源码参考:[Ext.ets](entry/src/main/ets/pages/Ext.ets)
84- UIExtension提供startAbilityAsCaller的能力,通过UIExtensionContentSession调用startAbilityAsCaller(want: Want, callback:
85  AsyncCallback<void>): void接口实现,源码参考:[Ext.ets](entry/src/main/ets/pages/Ext.ets)
86
87### 相关权限
88
89[ohos.permission.GET_RUNNING_INFO](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_running_info)
90
91### 依赖
92
93以下依赖主要针对UIExtension提供隐式启动startAbilityByType的功能使用
94
951.将uiextension_picker_config.json配置文件导出到本地
96
97```
98hdc_std file recv system/etc/uiextension_picker_config.json
99```
100
1012.修改uiextension_picker_config.json配置文件
102
103json中需要配置的字段内容:
104
105```
106{
107    "uiextension":[
108        {
109            "type": "share",
110            "typePicker": "sysPicker/share"
111        }
112    ]
113}
114```
115
1163.将uiextension_picker_config.json文件导入到 /system/etc路径下
117
118```
119hdc_std shell mount -o rw,remount /
120
121hdc_std file send uiextension_picker_config.json /system/etc
122
123hdc_std shell sync
124
125hdc_std shell reboot
126```
127
128### 约束与限制
129
1301.本示例仅支持标准系统上运行,支持设备:RK3568;
131
1322.本示例为Stage模型,支持API11版本SDK,版本号:4.1.5.1;
133
1343.本示例涉及使用系统接口:appManager.isApplicationRunningUIAbilityContext.requestModalUIExtension,
135UIAbilityContext.startAbilityAsCaller,UIExtensionContentSession.startAbilityAsCaller,UIExtensionProxy.sendSync
136需要手动替换Full SDK才能编译通过;
137
1384.本示例需要使用DevEco Studio 3.1.1 Release (Build Version: 3.1.0.501, built on June 20, 2023)才可编译运行;
139
1405.本示例涉及[ohos.permission.GET_RUNNING_INFO](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_running_info)权限为 system_basic级别,需要配置高权限签名。
141
142### 下载
143
144```shell
145git init
146git config core.sparsecheckout true
147echo code/SystemFeature/Ability/AbilityFeatureSystem/ > .git/info/sparse-checkout
148git remote add origin https://gitee.com/openharmony/applications_app_samples.git
149git pull origin master
150```
151
152