Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
581473c1
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
581473c1
编写于
4月 14, 2023
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
schema修改,module.json5配置文件中visible字段修改为 exported。
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
0f65731e
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
74 addition
and
74 deletion
+74
-74
zh-cn/application-dev/ability-deprecated/fa-dataability.md
zh-cn/application-dev/ability-deprecated/fa-dataability.md
+3
-3
zh-cn/application-dev/ability-deprecated/fa-serviceability.md
...n/application-dev/ability-deprecated/fa-serviceability.md
+6
-6
zh-cn/application-dev/ability-deprecated/stage-call.md
zh-cn/application-dev/ability-deprecated/stage-call.md
+1
-1
zh-cn/application-dev/ability-deprecated/stage-serviceextension.md
...lication-dev/ability-deprecated/stage-serviceextension.md
+1
-1
zh-cn/application-dev/application-models/common-event-static-subscription.md
...ev/application-models/common-event-static-subscription.md
+1
-1
zh-cn/application-dev/application-models/create-pageability.md
.../application-dev/application-models/create-pageability.md
+1
-1
zh-cn/application-dev/application-models/create-serviceability.md
...plication-dev/application-models/create-serviceability.md
+2
-2
zh-cn/application-dev/application-models/dataability-configuration.md
...ation-dev/application-models/dataability-configuration.md
+2
-2
zh-cn/application-dev/application-models/dataability-permission-control.md
...-dev/application-models/dataability-permission-control.md
+1
-1
zh-cn/application-dev/application-models/enterprise-extensionAbility.md
...ion-dev/application-models/enterprise-extensionAbility.md
+1
-1
zh-cn/application-dev/application-models/hop-multi-device-collaboration.md
...-dev/application-models/hop-multi-device-collaboration.md
+1
-1
zh-cn/application-dev/application-models/inputmethodextentionability.md
...ion-dev/application-models/inputmethodextentionability.md
+1
-1
zh-cn/application-dev/application-models/redirection-rules.md
...n/application-dev/application-models/redirection-rules.md
+7
-7
zh-cn/application-dev/application-models/serviceextensionability.md
...ication-dev/application-models/serviceextensionability.md
+1
-1
zh-cn/application-dev/application-models/uiability-intra-device-interaction.md
.../application-models/uiability-intra-device-interaction.md
+1
-1
zh-cn/application-dev/application-models/windowextensionability.md
...lication-dev/application-models/windowextensionability.md
+1
-1
zh-cn/application-dev/quick-start/application-configuration-file-overview-fa.md
...quick-start/application-configuration-file-overview-fa.md
+1
-1
zh-cn/application-dev/quick-start/atomicService.md
zh-cn/application-dev/quick-start/atomicService.md
+1
-1
zh-cn/application-dev/quick-start/module-structure.md
zh-cn/application-dev/quick-start/module-structure.md
+6
-6
zh-cn/device-dev/subsystems/subsys-application-framework-guide.md
...vice-dev/subsystems/subsys-application-framework-guide.md
+35
-35
未找到文件。
zh-cn/application-dev/ability-deprecated/fa-dataability.md
浏览文件 @
581473c1
...
...
@@ -116,7 +116,7 @@ URI示例:
| "name" | Ability名称,对应Ability派生的Data类名。 |
| "type" | Ability类型,Data对应的Ability类型为”data“。 |
| "uri" | 通信使用的URI。 |
| "
visible"
| 对其他应用是否可见,设置为true时,Data才能与其他应用进行通信传输数据。 |
| "
exported"
| 对其他应用是否可见,设置为true时,Data才能与其他应用进行通信传输数据。 |
**config.json配置样例**
...
...
@@ -128,7 +128,7 @@ URI示例:
"srcLanguage"
:
"ets"
,
"description"
:
"$string:description_dataability"
,
"type"
:
"data"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"uri"
:
"dataability://ohos.samples.etsdataability.DataAbility"
}]
```
...
...
@@ -154,7 +154,7 @@ URI示例:
import
featureAbility
from
'
@ohos.ability.featureAbility
'
import
ohos_data_ability
from
'
@ohos.data.dataAbility
'
import
ohos_data_rdb
from
'
@ohos.data.rdb
'
var
urivar
=
"
dataability:///com.ix.DataAbility
"
var
DAHelper
=
featureAbility
.
acquireDataAbilityHelper
(
urivar
...
...
zh-cn/application-dev/ability-deprecated/fa-serviceability.md
浏览文件 @
581473c1
...
...
@@ -59,7 +59,7 @@ onCommand()与onConnect()的区别在于:
{
"name"
:
".ServiceAbility"
,
"type"
:
"service"
,
"
visible
"
:
true
"
exported
"
:
true
...
}
]
...
...
@@ -157,7 +157,7 @@ featureAbility.startAbility(
```ts
import prompt from '@system.prompt'
var option = {
onConnect: function onConnectCallback(element, proxy) {
console.log(`onConnectLocalService onConnectDone`);
...
...
@@ -196,7 +196,7 @@ featureAbility.startAbility(
```ts
import featureAbility from '@ohos.ability.featureAbility'
let want = {
bundleName: "com.jstest.service",
abilityName: "com.jstest.service.ServiceAbility"
...
...
@@ -210,7 +210,7 @@ featureAbility.startAbility(
```ts
import rpc from "@ohos.rpc"
class ServiceAbilityStub extends rpc.RemoteObject {
constructor(des: any) {
if (typeof des === 'string') {
...
...
@@ -220,7 +220,7 @@ featureAbility.startAbility(
return;
}
}
onRemoteRequest(code: number, data: any, reply: any, option: any) {
console.log("onRemoteRequest called");
// 可根据code执行不同的业务逻辑
...
...
@@ -237,7 +237,7 @@ featureAbility.startAbility(
return true;
}
}
export default {
onStart() {
console.log('ServiceAbility onStart');
...
...
zh-cn/application-dev/ability-deprecated/stage-call.md
浏览文件 @
581473c1
...
...
@@ -66,7 +66,7 @@ Ability配置标签示例如下:
"description"
:
"$string:CalleeAbility_desc"
,
"icon"
:
"$media:icon"
,
"label"
:
"$string:CalleeAbility_label"
,
"
visible
"
:
true
"
exported
"
:
true
}]
```
**2. 导入Ability模块**
...
...
zh-cn/application-dev/ability-deprecated/stage-serviceextension.md
浏览文件 @
581473c1
...
...
@@ -33,7 +33,7 @@ OpenHarmony当前不支持三方应用创建ServiceExtensionAbility。
"icon"
:
"$media:icon"
,
"description"
:
"service"
,
"type"
:
"service"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"srcEnty"
:
"./ets/ServiceExtAbility/ServiceExtAbility.ts"
}]
```
...
...
zh-cn/application-dev/application-models/common-event-static-subscription.md
浏览文件 @
581473c1
...
...
@@ -42,7 +42,7 @@
"
icon
"
:
"
$media:icon
"
,
"
label
"
:
"
$string:StaticSubscriber_label
"
,
"
type
"
:
"
staticSubscriber
"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"
metadata
"
:
[
{
"
name
"
:
"
ohos.extension.staticSubscriber
"
,
...
...
zh-cn/application-dev/application-models/create-pageability.md
浏览文件 @
581473c1
...
...
@@ -47,7 +47,7 @@ PageAbility创建成功后,其abilities相关的配置项在config.json中体
}
],
"orientation"
:
"unspecified"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"srcPath"
:
"MainAbility"
,
"name"
:
".MainAbility"
,
"srcLanguage"
:
"ets"
,
...
...
zh-cn/application-dev/application-models/create-serviceability.md
浏览文件 @
581473c1
...
...
@@ -40,7 +40,7 @@
2.
注册ServiceAbility。
ServiceAbility需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。"
visible"属性表示ServiceAbility是否可以被其他应用调用,true表示可以被其他应用调用,false表示不能被其他应用调用(仅应用内可以调用)。若ServiceAbility需要被其他应用调用,注册ServiceAbility时需要设置"visible
"为true,同时需要设置支持关联启动。ServiceAbility的启动规则详见
[
组件启动规则
](
component-startup-rules.md
)
章节。
ServiceAbility需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。"
exported"属性表示ServiceAbility是否可以被其他应用调用,true表示可以被其他应用调用,false表示不能被其他应用调用(仅应用内可以调用)。若ServiceAbility需要被其他应用调用,注册ServiceAbility时需要设置"exported
"为true,同时需要设置支持关联启动。ServiceAbility的启动规则详见
[
组件启动规则
](
component-startup-rules.md
)
章节。
```
json
{
...
...
@@ -53,7 +53,7 @@
"icon"
:
"$media:icon"
,
"description"
:
"hap sample empty service"
,
"type"
:
"service"
,
"
visible
"
:
true
"
exported
"
:
true
}
]
}
...
...
zh-cn/application-dev/application-models/dataability-configuration.md
浏览文件 @
581473c1
...
...
@@ -38,7 +38,7 @@ URI示例:
| "name" | Ability名称。 |
| "type" | UIAbility类型,DataAbility的类型为"data"。 |
| "uri" | 通信使用的URI。 |
| "
visible
" | 对其他应用是否可见,设置为true时,DataAbility才能与其他应用进行通信传输数据。 |
| "
exported
" | 对其他应用是否可见,设置为true时,DataAbility才能与其他应用进行通信传输数据。 |
config.json配置样例
...
...
@@ -51,7 +51,7 @@ config.json配置样例
"srcLanguage"
:
"ets"
,
"description"
:
"$string:description_dataability"
,
"type"
:
"data"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"uri"
:
"dataability://ohos.samples.etsdataability.DataAbility"
}]
```
...
...
zh-cn/application-dev/application-models/dataability-permission-control.md
浏览文件 @
581473c1
...
...
@@ -17,7 +17,7 @@ DataAbility作为服务端,在被拉起的时候,会根据config.json里面
"srcLanguage"
:
"ets"
,
"description"
:
"$string:description_dataability"
,
"type"
:
"data"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"uri"
:
"dataability://ohos.samples.etsdataability.DataAbility"
,
"readPermission"
:
"ohos.permission.READ_CONTACTS"
,
"writePermission"
:
"ohos.permission.WRITE_CONTACTS"
...
...
zh-cn/application-dev/application-models/enterprise-extensionAbility.md
浏览文件 @
581473c1
...
...
@@ -68,7 +68,7 @@ export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbil
{
"
name
"
:
"
ohos.samples.enterprise_admin_ext_ability
"
,
"
type
"
:
"
enterpriseAdmin
"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"
srcEnty
"
:
"
./ets/enterpriseextability/EnterpriseAdminAbility.ts
"
}
]
...
...
zh-cn/application-dev/application-models/hop-multi-device-collaboration.md
浏览文件 @
581473c1
...
...
@@ -388,7 +388,7 @@
"description": "$string:CalleeAbility_desc",
"icon": "$media:icon",
"label": "$string:CalleeAbility_label",
"
visible
": true
"
exported
": true
}]
```
2.
导入UIAbility模块。
...
...
zh-cn/application-dev/application-models/inputmethodextentionability.md
浏览文件 @
581473c1
...
...
@@ -352,7 +352,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis
"
name
"
:
"
InputMethodExtAbility
"
,
"
srcEnty
"
:
"
./ets/inputmethodextability/InputMethodService.ts
"
,
"
type
"
:
"
inputMethod
"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
}
]
}
...
...
zh-cn/application-dev/application-models/redirection-rules.md
浏览文件 @
581473c1
...
...
@@ -7,27 +7,27 @@
PageAbility作为可见Ability,可以通过startAbility启动有界面的且对外可见的Ability。
应用可通过在config.json中设置"abilities"中的"
visible"属性设置Ability是否可由其他应用的组件启动,"visible
"属性的具体参数和意义如下表所示。
应用可通过在config.json中设置"abilities"中的"
exported"属性设置Ability是否可由其他应用的组件启动,"exported
"属性的具体参数和意义如下表所示。
**表1**
visible
属性说明
**表1**
exported
属性说明
| 属性名称 | 描述 | 是否可缺省 |
| 属性名称 | 描述 | 是否可缺省 |
| -------- | -------- | -------- |
|
visible | 表示Ability是否可以被其他应用调用。
<br/>
true:该Ability可以被任何应用调用。
<br/>
false:该Ability只能被同一应用的其他组件调用。 | 可缺省,缺省时默认属性值为"false"。 |
|
exported | 表示Ability是否可以被其他应用调用。
<br/>
true:该Ability可以被任何应用调用。
<br/>
false:该Ability只能被同一应用的其他组件调用。 | 可缺省,缺省时默认属性值为"false"。 |
如果需设置当前Ability可由任何应用访问,对应config.json文件的示例代码如下所示:
```
ts
{
"
module
"
:
{
// ...
"
abilities
"
:
[
{
"
visible
"
:
"
true
"
,
"
exported
"
:
"
true
"
,
// ...
}
]
...
...
@@ -36,4 +36,4 @@ PageAbility作为可见Ability,可以通过startAbility启动有界面的且
```
如果应用中的Ability包含skills过滤器,建议此属性设置为"true",以允许其他应用通过
[
隐式调用
](
explicit-implicit-want-mappings.md#隐式want匹配原理详解
)
启动该Ability。如果此属性设为"false",其他应用尝试启动该Ability时系统会返回PERMISSION_DENIED。这种情况下系统应用可以通过申请
[
START_INVISIBLE_ABILITY
](
../security/permission-list.md
)
权限启动
visible
为false的组件,例如系统桌面、语音助手、搜索助手等。
如果应用中的Ability包含skills过滤器,建议此属性设置为"true",以允许其他应用通过
[
隐式调用
](
explicit-implicit-want-mappings.md#隐式want匹配原理详解
)
启动该Ability。如果此属性设为"false",其他应用尝试启动该Ability时系统会返回PERMISSION_DENIED。这种情况下系统应用可以通过申请
[
START_INVISIBLE_ABILITY
](
../security/permission-list.md
)
权限启动
exported
为false的组件,例如系统桌面、语音助手、搜索助手等。
zh-cn/application-dev/application-models/serviceextensionability.md
浏览文件 @
581473c1
...
...
@@ -149,7 +149,7 @@
"icon"
:
"$media:icon"
,
"description"
:
"service"
,
"type"
:
"service"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"srcEnty"
:
"./ets/serviceextability/ServiceExtAbility.ts"
}
]
...
...
zh-cn/application-dev/application-models/uiability-intra-device-interaction.md
浏览文件 @
581473c1
...
...
@@ -503,7 +503,7 @@ Call功能主要接口如下表所示。具体的API详见[接口文档](../refe
"description"
:
"$string:CalleeAbility_desc"
,
"icon"
:
"$media:icon"
,
"label"
:
"$string:CalleeAbility_label"
,
"
visible
"
:
true
"
exported
"
:
true
}]
```
...
...
zh-cn/application-dev/application-models/windowextensionability.md
浏览文件 @
581473c1
...
...
@@ -72,7 +72,7 @@ WindowExtensionAbility提供了onConnect()、onDisconnect()和onWindowReady()生
"icon"
:
"$media:icon"
,
"description"
:
"WindowExtension"
,
"type"
:
"window"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
}
],
}
...
...
zh-cn/application-dev/quick-start/application-configuration-file-overview-fa.md
浏览文件 @
581473c1
...
...
@@ -74,7 +74,7 @@ config.json示例:
}
],
"orientation"
:
"unspecified"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"srcPath"
:
"MainAbility_entry"
,
"name"
:
".MainAbility_entry"
,
"srcLanguage"
:
"ets"
,
...
...
zh-cn/application-dev/quick-start/atomicService.md
浏览文件 @
581473c1
...
...
@@ -104,7 +104,7 @@
"label"
:
"$string:MainAbility_label"
,
"startWindowIcon"
:
"$media:icon"
,
"startWindowBackground"
:
"$color:white"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"skills"
:
[
{
"entities"
:
[
...
...
zh-cn/application-dev/quick-start/module-structure.md
浏览文件 @
581473c1
...
...
@@ -48,7 +48,7 @@ module示例:
}
],
"orientation"
:
"unspecified"
,
"
visible
"
:
true
,
"
exported
"
:
true
,
"srcPath"
:
"EntryAbility"
,
"name"
:
".EntryAbility"
,
"srcLanguage"
:
"ets"
,
...
...
@@ -264,7 +264,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口
| label | 标识Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含
"action.system.home",entities取值中包含"entity.system.home",则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。
<br/>
说明:
应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。该标签为资源文件中定义的字符串的引用,或以"{}"包括的字符串。该标签最大长度为255个字节。 | 字符串 | 可缺省,缺省值为空。 |
| uri | 标识Ability的统一资源标识符。该标签最大长度为255个字节。 | 字符串 | 可缺省,对于data类型的Ability不可缺省。 |
| launchType | 标识Ability的启动模式,支持"standard"和"singleton"两种模式:
<br/>
standard:表示该Ability可以有多实例。该模式适用于大多数应用场景。
<br/>
singleton:表示该Ability在所有任务栈中仅可以有一个实例。例如,具有全局唯一性的呼叫来电界面即采用"singleton"模式。该标签仅适用于默认设备、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为"singleton"。 |
|
visible
| 标识Ability是否可以被其他应用调用。
<br/>
true:可以被其他应用调用。
<br/>
false:不能被其他应用调用。 | 布尔类型 | 可缺省,缺省值为"false"。 |
|
exported
| 标识Ability是否可以被其他应用调用。
<br/>
true:可以被其他应用调用。
<br/>
false:不能被其他应用调用。 | 布尔类型 | 可缺省,缺省值为"false"。 |
| permissions | 标识其他应用的Ability调用此Ability时需要申请的权限集合,一个数组元素为一个权限名称。通常采用反向域名格式(最大255字节),取值为系统预定义的权限。 | 字符串数组 | 可缺省,缺省值为空。 |
|skills | 标识Ability能够接收的want的特征。 | 对象数组 | 可缺省,缺省值为空。 |
| deviceCapability | 标识Ability运行时要求设备具有的能力,采用字符串数组的格式表示。该标签为数组,支持最多配置512个元素,单个元素最大字节长度为64。 | 字符串数组 | 可缺省,缺省值为空。 |
...
...
@@ -277,7 +277,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口
| writePermission | 标识向Ability写数据所需的权限。该标签仅适用于data类型的Ability。取值为长度不超过255字节的字符串。 | 字符串 | 可缺省,缺省为空。 |
| configChanges | 标识Ability关注的系统配置集合。当已关注的配置发生变更后,Ability会收到onConfigurationUpdated回调。取值范围:
<br/>
mcc:表示IMSI移动设备国家/地区代码(MCC)发生变更。典型场景:检测到SIM并更新MCC。
<br/>
mnc:IMSI移动设备网络代码(MNC)发生变更。典型场景:检测到SIM并更新MNC。
<br/>
locale:表示语言区域发生变更。典型场景:用户已为设备文本的文本显示选择新的语言类型。
<br/>
layout:表示屏幕布局发生变更。典型场景:当前有不同的显示形态都处于活跃状态。
<br/>
fontSize:表示字号发生变更。典型场景:用户已设置新的全局字号。
<br/>
orientation:表示屏幕方向发生变更。典型场景:用户旋转设备。
<br/>
density:表示显示密度发生变更。典型场景:用户可能指定不同的显示比例,或当前有不同的显示形态同时处于活跃状态。
<br/>
size:显示窗口大小发生变更。
<br/>
smallestSize:显示窗口较短边的边长发生变更。
<br/>
colorMode:颜色模式发生变更。 | 字符串数组 | 可缺省,缺省为空。 |
| mission | 标识Ability指定的任务栈。该标签仅适用于page类型的Ability。默认情况下应用中所有Ability同属一个任务栈。 | 字符串 | 可缺省,缺省为应用的包名。 |
| targetAbility | 标识当前Ability重用的目标Ability。该标签仅适用于page类型的Ability。如果配置了targetAbility属性,则当前Ability(即别名Ability)的属性中仅name、icon、label、
visible
、permissions、skills生效,其他属性均沿用targetAbility中的属性值。目标Ability必须与别名Ability在同一应用中,且在配置文件中目标Ability必须在别名之前进行声明。 | 字符串 | 可缺省,缺省值为空。表示当前Ability不是一个别名Ability。 |
| targetAbility | 标识当前Ability重用的目标Ability。该标签仅适用于page类型的Ability。如果配置了targetAbility属性,则当前Ability(即别名Ability)的属性中仅name、icon、label、
exported
、permissions、skills生效,其他属性均沿用targetAbility中的属性值。目标Ability必须与别名Ability在同一应用中,且在配置文件中目标Ability必须在别名之前进行声明。 | 字符串 | 可缺省,缺省值为空。表示当前Ability不是一个别名Ability。 |
| formsEnabled | 标识Ability是否支持卡片(forms)功能。该标签仅适用于page类型的Ability。
<br/>
true:支持卡片能力。
<br/>
false:不支持卡片能力。 | 布尔值 | 可缺省,缺省值为false。 |
| forms | 标识服务卡片的属性。该标签仅当formsEnabled为"true"时,才能生效。 | 对象数组 | 可缺省,缺省值为空。 |
| srcLanguage | Ability开发语言的类型,开发者创建工程时由开发者手动选择开发语言。 | 字符串 | 可缺省,缺省值为“js”。 |
...
...
@@ -311,7 +311,7 @@ abilities示例:
"launchType"
:
"standard"
,
"orientation"
:
"unspecified"
,
"permissions"
:
[],
"
visible
"
:
true
,
"
exported
"
:
true
,
"skills"
:
[
{
"actions"
:
[
...
...
@@ -340,7 +340,7 @@ abilities示例:
"label"
:
"$string:example"
,
"launchType"
:
"standard"
,
"orientation"
:
"unspecified"
,
"
visible
"
:
false
,
"
exported
"
:
false
,
"skills"
:
[
{
"actions"
:
[
...
...
@@ -361,7 +361,7 @@ abilities示例:
"name"
:
".UserADataAbility"
,
"type"
:
"data"
,
"uri"
:
"dataability://com.example.world.test.UserADataAbility"
,
"
visible
"
:
true
"
exported
"
:
true
}
]
```
...
...
zh-cn/device-dev/subsystems/subsys-application-framework-guide.md
浏览文件 @
581473c1
...
...
@@ -70,7 +70,7 @@
1.
在my_service_ability.h中创建Ability的子类MyServiceAbility。
```
class MyServiceAbility: public Ability {
protected:
...
...
@@ -81,7 +81,7 @@
```
2.
调用REGISTER_AA宏将ServiceAbility注册到应用框架中,以便应用框架实例化MyServiceAbility。
```
#include "my_service_ability.h"
...
...
@@ -115,8 +115,8 @@
-
OnStart()
该方法在创建Service的时候调用,用于做一些Service初始化且耗时较短的工作,在Service的整个生命周期只会调用一次。
```
```
ts
void MyServiceAbility::OnStart(const Want& want)
{
printf("ServiceAbility::OnStart\n");
...
...
@@ -126,8 +126,8 @@
-
OnConnect()
在组件和服务连接时调用,该方法返回SvcIdentity,组件可以通过它与服务交互。
```
```
ts
const SvcIdentity *MyServiceAbility::OnConnect(const Want &want)
{
printf("ServiceAbility::OnConnect\n");
...
...
@@ -142,8 +142,8 @@
4.
重写消息处理方法。
MsgHandle是Service用来处理客户端消息的方法。其中funcId是客户端传过来的消息类型,request是客户端传过来的序列化请求参数。如果用户在处理完成之后想要把结果传回去,需要把结果序列化后写入reply中。
```
```
ts
void
ServiceAbility
::
MsgHandle
(
uint32_t
funcId
,
IpcIo
*
request
,
IpcIo
*
reply
)
{
printf
(
"
ServiceAbility::MsgHandle, funcId is %d
\n
"
,
funcId
);
...
...
@@ -159,15 +159,15 @@
5.
注册Service。
Service也需要在应用清单文件config.json中进行注册,注册类型type需要设置为service。
```
```
ts
"
abilities
"
:
[{
"
name
"
:
"
ServiceAbility
"
,
"
icon
"
:
"
res/drawable/phone.png
"
,
"
label
"
:
"
test app 2
"
,
"
launchType
"
:
"
standard
"
,
"
type
"
:
"
service
"
,
"
visible
": true
"
exported
"
:
true
}
]
```
...
...
@@ -176,7 +176,7 @@
-
Ability为用户提供了StartAbility()方法来启动另外一个Ability,因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。
开发者可以通过Want的SetWantElement ()来设置目标服务信息。ElementName结构体的两个主要参数:第一个参数为包名称;第二个参数为目标Ability。
```
```
ts
{
Want
want
=
{
nullptr
};
ElementName
element
=
{
nullptr
};
...
...
@@ -195,8 +195,8 @@
7.
连接Service。
-
如果Service需要与Page Ability或其他应用组件中的Service进行交互,则应创建用于连接的Service。Service支持其他Ability通过ConnectAbility()与其进行连接,ConnectAbility()需要传入目标Service的Want,以及IAbilityConnection的实例来处理回调。IAbilityConnection提供了两个方法供用户实现,OnAbilityConnectDone()用来处理连接的回调,OnAbilityDisconnectDone()用来处理断开连接的回调。
```
```
ts
{
// ability创建IAbilityConnection对象和定义IAbilityConnection的两个方法实现
IAbilityConnection
abilityConnection
=
new
IAbilityConnection
();
...
...
@@ -240,8 +240,8 @@
}
```
-
发起connect和disconnect。
```
```
ts
{
// ability发起connect
Want
want
=
{
nullptr
};
...
...
@@ -276,8 +276,8 @@
1.
将经过安全签名的应用放置于指定的目录下。
2.
创建InstallParam实例和信号量。
```
```
ts
InstallParam
installParam
=
{
.
installLocation
=
INSTALL_LOCATION_INTERNAL_ONLY
,
// 安装到系统目录
.
keepData
=
false
...
...
@@ -286,8 +286,8 @@
```
3.
定义回调函数。
```
```
ts
static
void
InstallCallback
(
const
uint8_t
resultCode
,
const
void
*
resultMessage
)
{
std
::
string
strMessage
=
reinterpret_cast
<
const
char
*>
(
resultMessage
);
...
...
@@ -299,8 +299,8 @@
```
4.
调用Install接口。
```
```
ts
const
uint32_t
WAIT_TIMEOUT
=
30
;
sem_init
(
&
g_sem
,
0
,
0
);
std
::
string
installPath
=
“
/
storage
/
bundle
/
demo
.
hap
”
;
// Hap包的存储路径
...
...
@@ -317,8 +317,8 @@
卸载应用的时候可以选择是否保留应用的数据,开发者可以通过创建的InstallParam实例的成员变量keepData来确定。当keepData为true, 卸载应用之后将保留应用的数据,当keepData为false时,卸载应用之后将不会保留应用的数据。
1.
创建InstallParam实例和信号量。
```
```
ts
static
sem_t
g_sem
;
InstallParam
installParam
=
{
.
installLocation
=
1
,
...
...
@@ -327,8 +327,8 @@
```
2.
定义回调函数。
```
```
ts
static
void
UninstallCallback
(
const
uint8_t
resultCode
,
const
void
*
resultMessage
)
{
std
::
string
strMessage
=
reinterpret_cast
<
const
char
*>
(
resultMessage
);
...
...
@@ -342,8 +342,8 @@
```
3.
调用Uninstall接口。
```
```
ts
sem_init
(
&
g_sem
,
0
,
0
);
const
uint32_t
WAIT_TIMEOUT
=
30
;
std
::
string
BUNDLE_NAME
=
“
com
.
example
.
demo
”
;
// 卸载应用的包名
...
...
@@ -360,22 +360,22 @@
开发者可以利用BundleManager提供的接口GetBundleInfo来查询系统内已安装应用的包信息。
1.
创建以及初始化BundleInfo。
```
```
ts
BundleInfo
bundleInfo
;
(
void
)
memset_s
(
&
bundleInfo
,
sizeof
(
BundleInfo
),
0
,
sizeof
(
BundleInfo
));
```
2.
调用GetBundleInfo接口,指定查询应用的包名,同时指定flag来确定获取的BundleInfo中是否含有元能力信息(实例代码以含有元能力信息为例)。
```
```
ts
std
::
string
BUNDLE_NAME
=
"
com.example.demo
"
;
uint8_t
ret
=
GetBundleInfo
(
BUNDLE_NAME
.
c_str
(),
1
,
&
bundleInfo
);
// flags = 1,获取包信息中含有元能力信息
```
3.
使用完获取的BundleInfo之后,要及时清理掉其内部所占用的内存空间避免内存泄漏。
```
```
ts
ClearBundleInfo
(
&
bundleInfo
);
```
...
...
@@ -401,7 +401,7 @@
| --force | - | 是否覆盖原有同名文件,默认为false | 是 |
-
打包示例
**图1**
开发视图
![zh-cn_image_0000001154005784](figures/zh-cn_image_0000001154005784.png)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录