提交 581473c1 编写于 作者: zyjhandsome's avatar zyjhandsome

schema修改,module.json5配置文件中visible字段修改为 exported。

Signed-off-by: zyjhandsome's avatarzyjhandsome <zyjhandsome@126.com>
上级 0f65731e
...@@ -116,7 +116,7 @@ URI示例: ...@@ -116,7 +116,7 @@ URI示例:
| "name" | Ability名称,对应Ability派生的Data类名。 | | "name" | Ability名称,对应Ability派生的Data类名。 |
| "type" | Ability类型,Data对应的Ability类型为”data“。 | | "type" | Ability类型,Data对应的Ability类型为”data“。 |
| "uri" | 通信使用的URI。 | | "uri" | 通信使用的URI。 |
| "visible" | 对其他应用是否可见,设置为true时,Data才能与其他应用进行通信传输数据。 | | "exported" | 对其他应用是否可见,设置为true时,Data才能与其他应用进行通信传输数据。 |
**config.json配置样例** **config.json配置样例**
...@@ -128,7 +128,7 @@ URI示例: ...@@ -128,7 +128,7 @@ URI示例:
"srcLanguage": "ets", "srcLanguage": "ets",
"description": "$string:description_dataability", "description": "$string:description_dataability",
"type": "data", "type": "data",
"visible": true, "exported": true,
"uri": "dataability://ohos.samples.etsdataability.DataAbility" "uri": "dataability://ohos.samples.etsdataability.DataAbility"
}] }]
``` ```
...@@ -154,7 +154,7 @@ URI示例: ...@@ -154,7 +154,7 @@ URI示例:
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataAbility' import ohos_data_ability from '@ohos.data.dataAbility'
import ohos_data_rdb from '@ohos.data.rdb' import ohos_data_rdb from '@ohos.data.rdb'
var urivar = "dataability:///com.ix.DataAbility" var urivar = "dataability:///com.ix.DataAbility"
var DAHelper = featureAbility.acquireDataAbilityHelper( var DAHelper = featureAbility.acquireDataAbilityHelper(
urivar urivar
......
...@@ -59,7 +59,7 @@ onCommand()与onConnect()的区别在于: ...@@ -59,7 +59,7 @@ onCommand()与onConnect()的区别在于:
{ {
"name": ".ServiceAbility", "name": ".ServiceAbility",
"type": "service", "type": "service",
"visible": true "exported": true
... ...
} }
] ]
...@@ -157,7 +157,7 @@ featureAbility.startAbility( ...@@ -157,7 +157,7 @@ featureAbility.startAbility(
```ts ```ts
import prompt from '@system.prompt' import prompt from '@system.prompt'
var option = { var option = {
onConnect: function onConnectCallback(element, proxy) { onConnect: function onConnectCallback(element, proxy) {
console.log(`onConnectLocalService onConnectDone`); console.log(`onConnectLocalService onConnectDone`);
...@@ -196,7 +196,7 @@ featureAbility.startAbility( ...@@ -196,7 +196,7 @@ featureAbility.startAbility(
```ts ```ts
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
let want = { let want = {
bundleName: "com.jstest.service", bundleName: "com.jstest.service",
abilityName: "com.jstest.service.ServiceAbility" abilityName: "com.jstest.service.ServiceAbility"
...@@ -210,7 +210,7 @@ featureAbility.startAbility( ...@@ -210,7 +210,7 @@ featureAbility.startAbility(
```ts ```ts
import rpc from "@ohos.rpc" import rpc from "@ohos.rpc"
class ServiceAbilityStub extends rpc.RemoteObject { class ServiceAbilityStub extends rpc.RemoteObject {
constructor(des: any) { constructor(des: any) {
if (typeof des === 'string') { if (typeof des === 'string') {
...@@ -220,7 +220,7 @@ featureAbility.startAbility( ...@@ -220,7 +220,7 @@ featureAbility.startAbility(
return; return;
} }
} }
onRemoteRequest(code: number, data: any, reply: any, option: any) { onRemoteRequest(code: number, data: any, reply: any, option: any) {
console.log("onRemoteRequest called"); console.log("onRemoteRequest called");
// 可根据code执行不同的业务逻辑 // 可根据code执行不同的业务逻辑
...@@ -237,7 +237,7 @@ featureAbility.startAbility( ...@@ -237,7 +237,7 @@ featureAbility.startAbility(
return true; return true;
} }
} }
export default { export default {
onStart() { onStart() {
console.log('ServiceAbility onStart'); console.log('ServiceAbility onStart');
......
...@@ -66,7 +66,7 @@ Ability配置标签示例如下: ...@@ -66,7 +66,7 @@ Ability配置标签示例如下:
"description": "$string:CalleeAbility_desc", "description": "$string:CalleeAbility_desc",
"icon": "$media:icon", "icon": "$media:icon",
"label": "$string:CalleeAbility_label", "label": "$string:CalleeAbility_label",
"visible": true "exported": true
}] }]
``` ```
**2. 导入Ability模块** **2. 导入Ability模块**
......
...@@ -33,7 +33,7 @@ OpenHarmony当前不支持三方应用创建ServiceExtensionAbility。 ...@@ -33,7 +33,7 @@ OpenHarmony当前不支持三方应用创建ServiceExtensionAbility。
"icon": "$media:icon", "icon": "$media:icon",
"description": "service", "description": "service",
"type": "service", "type": "service",
"visible": true, "exported": true,
"srcEnty": "./ets/ServiceExtAbility/ServiceExtAbility.ts" "srcEnty": "./ets/ServiceExtAbility/ServiceExtAbility.ts"
}] }]
``` ```
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
"icon": "$media:icon", "icon": "$media:icon",
"label": "$string:StaticSubscriber_label", "label": "$string:StaticSubscriber_label",
"type": "staticSubscriber", "type": "staticSubscriber",
"visible": true, "exported": true,
"metadata": [ "metadata": [
{ {
"name": "ohos.extension.staticSubscriber", "name": "ohos.extension.staticSubscriber",
......
...@@ -47,7 +47,7 @@ PageAbility创建成功后,其abilities相关的配置项在config.json中体 ...@@ -47,7 +47,7 @@ PageAbility创建成功后,其abilities相关的配置项在config.json中体
} }
], ],
"orientation": "unspecified", "orientation": "unspecified",
"visible": true, "exported": true,
"srcPath": "MainAbility", "srcPath": "MainAbility",
"name": ".MainAbility", "name": ".MainAbility",
"srcLanguage": "ets", "srcLanguage": "ets",
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
2. 注册ServiceAbility。 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 ```json
{ {
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
"icon": "$media:icon", "icon": "$media:icon",
"description": "hap sample empty service", "description": "hap sample empty service",
"type": "service", "type": "service",
"visible": true "exported": true
} }
] ]
} }
......
...@@ -38,7 +38,7 @@ URI示例: ...@@ -38,7 +38,7 @@ URI示例:
| "name" | Ability名称。 | | "name" | Ability名称。 |
| "type" | UIAbility类型,DataAbility的类型为"data"。 | | "type" | UIAbility类型,DataAbility的类型为"data"。 |
| "uri" | 通信使用的URI。 | | "uri" | 通信使用的URI。 |
| "visible" | 对其他应用是否可见,设置为true时,DataAbility才能与其他应用进行通信传输数据。 | | "exported" | 对其他应用是否可见,设置为true时,DataAbility才能与其他应用进行通信传输数据。 |
config.json配置样例 config.json配置样例
...@@ -51,7 +51,7 @@ config.json配置样例 ...@@ -51,7 +51,7 @@ config.json配置样例
"srcLanguage": "ets", "srcLanguage": "ets",
"description": "$string:description_dataability", "description": "$string:description_dataability",
"type": "data", "type": "data",
"visible": true, "exported": true,
"uri": "dataability://ohos.samples.etsdataability.DataAbility" "uri": "dataability://ohos.samples.etsdataability.DataAbility"
}] }]
``` ```
......
...@@ -17,7 +17,7 @@ DataAbility作为服务端,在被拉起的时候,会根据config.json里面 ...@@ -17,7 +17,7 @@ DataAbility作为服务端,在被拉起的时候,会根据config.json里面
"srcLanguage": "ets", "srcLanguage": "ets",
"description": "$string:description_dataability", "description": "$string:description_dataability",
"type": "data", "type": "data",
"visible": true, "exported": true,
"uri": "dataability://ohos.samples.etsdataability.DataAbility", "uri": "dataability://ohos.samples.etsdataability.DataAbility",
"readPermission":"ohos.permission.READ_CONTACTS", "readPermission":"ohos.permission.READ_CONTACTS",
"writePermission":"ohos.permission.WRITE_CONTACTS" "writePermission":"ohos.permission.WRITE_CONTACTS"
......
...@@ -68,7 +68,7 @@ export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbil ...@@ -68,7 +68,7 @@ export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbil
{ {
"name": "ohos.samples.enterprise_admin_ext_ability", "name": "ohos.samples.enterprise_admin_ext_ability",
"type": "enterpriseAdmin", "type": "enterpriseAdmin",
"visible": true, "exported": true,
"srcEnty": "./ets/enterpriseextability/EnterpriseAdminAbility.ts" "srcEnty": "./ets/enterpriseextability/EnterpriseAdminAbility.ts"
} }
] ]
......
...@@ -388,7 +388,7 @@ ...@@ -388,7 +388,7 @@
"description": "$string:CalleeAbility_desc", "description": "$string:CalleeAbility_desc",
"icon": "$media:icon", "icon": "$media:icon",
"label": "$string:CalleeAbility_label", "label": "$string:CalleeAbility_label",
"visible": true "exported": true
}] }]
``` ```
2. 导入UIAbility模块。 2. 导入UIAbility模块。
......
...@@ -352,7 +352,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis ...@@ -352,7 +352,7 @@ InputMethodExtensionAbility通过[InputMethodExtensionContext](../reference/apis
"name": "InputMethodExtAbility", "name": "InputMethodExtAbility",
"srcEnty": "./ets/inputmethodextability/InputMethodService.ts", "srcEnty": "./ets/inputmethodextability/InputMethodService.ts",
"type": "inputMethod", "type": "inputMethod",
"visible": true, "exported": true,
} }
] ]
} }
......
...@@ -7,27 +7,27 @@ ...@@ -7,27 +7,27 @@
PageAbility作为可见Ability,可以通过startAbility启动有界面的且对外可见的Ability。 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文件的示例代码如下所示: 如果需设置当前Ability可由任何应用访问,对应config.json文件的示例代码如下所示:
```ts ```ts
{ {
"module": { "module": {
// ... // ...
"abilities": [ "abilities": [
{ {
"visible": "true", "exported": "true",
// ... // ...
} }
] ]
...@@ -36,4 +36,4 @@ PageAbility作为可见Ability,可以通过startAbility启动有界面的且 ...@@ -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的组件,例如系统桌面、语音助手、搜索助手等。
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
"icon": "$media:icon", "icon": "$media:icon",
"description": "service", "description": "service",
"type": "service", "type": "service",
"visible": true, "exported": true,
"srcEnty": "./ets/serviceextability/ServiceExtAbility.ts" "srcEnty": "./ets/serviceextability/ServiceExtAbility.ts"
} }
] ]
......
...@@ -503,7 +503,7 @@ Call功能主要接口如下表所示。具体的API详见[接口文档](../refe ...@@ -503,7 +503,7 @@ Call功能主要接口如下表所示。具体的API详见[接口文档](../refe
"description": "$string:CalleeAbility_desc", "description": "$string:CalleeAbility_desc",
"icon": "$media:icon", "icon": "$media:icon",
"label": "$string:CalleeAbility_label", "label": "$string:CalleeAbility_label",
"visible": true "exported": true
}] }]
``` ```
......
...@@ -72,7 +72,7 @@ WindowExtensionAbility提供了onConnect()、onDisconnect()和onWindowReady()生 ...@@ -72,7 +72,7 @@ WindowExtensionAbility提供了onConnect()、onDisconnect()和onWindowReady()生
"icon": "$media:icon", "icon": "$media:icon",
"description": "WindowExtension", "description": "WindowExtension",
"type": "window", "type": "window",
"visible": true, "exported": true,
} }
], ],
} }
......
...@@ -74,7 +74,7 @@ config.json示例: ...@@ -74,7 +74,7 @@ config.json示例:
} }
], ],
"orientation": "unspecified", "orientation": "unspecified",
"visible": true, "exported": true,
"srcPath": "MainAbility_entry", "srcPath": "MainAbility_entry",
"name": ".MainAbility_entry", "name": ".MainAbility_entry",
"srcLanguage": "ets", "srcLanguage": "ets",
......
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
"label": "$string:MainAbility_label", "label": "$string:MainAbility_label",
"startWindowIcon": "$media:icon", "startWindowIcon": "$media:icon",
"startWindowBackground": "$color:white", "startWindowBackground": "$color:white",
"visible": true, "exported": true,
"skills": [ "skills": [
{ {
"entities": [ "entities": [
......
...@@ -48,7 +48,7 @@ module示例: ...@@ -48,7 +48,7 @@ module示例:
} }
], ],
"orientation": "unspecified", "orientation": "unspecified",
"visible": true, "exported": true,
"srcPath": "EntryAbility", "srcPath": "EntryAbility",
"name": ".EntryAbility", "name": ".EntryAbility",
"srcLanguage": "ets", "srcLanguage": "ets",
...@@ -264,7 +264,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口 ...@@ -264,7 +264,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口
| label | 标识Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含&nbsp;"action.system.home",entities取值中包含"entity.system.home",则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。<br/>说明:&nbsp;应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。该标签为资源文件中定义的字符串的引用,或以"{}"包括的字符串。该标签最大长度为255个字节。 | 字符串 | 可缺省,缺省值为空。 | | label | 标识Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含&nbsp;"action.system.home",entities取值中包含"entity.system.home",则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。<br/>说明:&nbsp;应用的"icon"和"label"是用户可感知配置项,需要区别于当前所有已有的应用"icon"或"label"(至少有一个不同)。该标签为资源文件中定义的字符串的引用,或以"{}"包括的字符串。该标签最大长度为255个字节。 | 字符串 | 可缺省,缺省值为空。 |
| uri | 标识Ability的统一资源标识符。该标签最大长度为255个字节。 | 字符串 | 可缺省,对于data类型的Ability不可缺省。 | | uri | 标识Ability的统一资源标识符。该标签最大长度为255个字节。 | 字符串 | 可缺省,对于data类型的Ability不可缺省。 |
| launchType | 标识Ability的启动模式,支持"standard"和"singleton"两种模式:<br/>standard:表示该Ability可以有多实例。该模式适用于大多数应用场景。<br/>singleton:表示该Ability在所有任务栈中仅可以有一个实例。例如,具有全局唯一性的呼叫来电界面即采用"singleton"模式。该标签仅适用于默认设备、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为"singleton"。 | | 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字节),取值为系统预定义的权限。 | 字符串数组 | 可缺省,缺省值为空。 | | permissions | 标识其他应用的Ability调用此Ability时需要申请的权限集合,一个数组元素为一个权限名称。通常采用反向域名格式(最大255字节),取值为系统预定义的权限。 | 字符串数组 | 可缺省,缺省值为空。 |
|skills | 标识Ability能够接收的want的特征。 | 对象数组 | 可缺省,缺省值为空。 | |skills | 标识Ability能够接收的want的特征。 | 对象数组 | 可缺省,缺省值为空。 |
| deviceCapability | 标识Ability运行时要求设备具有的能力,采用字符串数组的格式表示。该标签为数组,支持最多配置512个元素,单个元素最大字节长度为64。 | 字符串数组 | 可缺省,缺省值为空。 | | deviceCapability | 标识Ability运行时要求设备具有的能力,采用字符串数组的格式表示。该标签为数组,支持最多配置512个元素,单个元素最大字节长度为64。 | 字符串数组 | 可缺省,缺省值为空。 |
...@@ -277,7 +277,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口 ...@@ -277,7 +277,7 @@ OpenHarmony系统对无图标应用严格管控。如果HAP中没有配置入口
| writePermission | 标识向Ability写数据所需的权限。该标签仅适用于data类型的Ability。取值为长度不超过255字节的字符串。 | 字符串 | 可缺省,缺省为空。 | | 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:颜色模式发生变更。 | 字符串数组 | 可缺省,缺省为空。 | | 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同属一个任务栈。 | 字符串 | 可缺省,缺省为应用的包名。 | | 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。 | | formsEnabled | 标识Ability是否支持卡片(forms)功能。该标签仅适用于page类型的Ability。<br/>true:支持卡片能力。<br/>false:不支持卡片能力。 | 布尔值 | 可缺省,缺省值为false。 |
| forms | 标识服务卡片的属性。该标签仅当formsEnabled为"true"时,才能生效。 | 对象数组 | 可缺省,缺省值为空。 | | forms | 标识服务卡片的属性。该标签仅当formsEnabled为"true"时,才能生效。 | 对象数组 | 可缺省,缺省值为空。 |
| srcLanguage | Ability开发语言的类型,开发者创建工程时由开发者手动选择开发语言。 | 字符串 | 可缺省,缺省值为“js”。 | | srcLanguage | Ability开发语言的类型,开发者创建工程时由开发者手动选择开发语言。 | 字符串 | 可缺省,缺省值为“js”。 |
...@@ -311,7 +311,7 @@ abilities示例: ...@@ -311,7 +311,7 @@ abilities示例:
"launchType": "standard", "launchType": "standard",
"orientation": "unspecified", "orientation": "unspecified",
"permissions": [], "permissions": [],
"visible": true, "exported": true,
"skills": [ "skills": [
{ {
"actions": [ "actions": [
...@@ -340,7 +340,7 @@ abilities示例: ...@@ -340,7 +340,7 @@ abilities示例:
"label": "$string:example", "label": "$string:example",
"launchType": "standard", "launchType": "standard",
"orientation": "unspecified", "orientation": "unspecified",
"visible": false, "exported": false,
"skills": [ "skills": [
{ {
"actions": [ "actions": [
...@@ -361,7 +361,7 @@ abilities示例: ...@@ -361,7 +361,7 @@ abilities示例:
"name": ".UserADataAbility", "name": ".UserADataAbility",
"type": "data", "type": "data",
"uri": "dataability://com.example.world.test.UserADataAbility", "uri": "dataability://com.example.world.test.UserADataAbility",
"visible": true "exported": true
} }
] ]
``` ```
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
1. 在my_service_ability.h中创建Ability的子类MyServiceAbility。 1. 在my_service_ability.h中创建Ability的子类MyServiceAbility。
``` ```
class MyServiceAbility: public Ability { class MyServiceAbility: public Ability {
protected: protected:
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
``` ```
2. 调用REGISTER_AA宏将ServiceAbility注册到应用框架中,以便应用框架实例化MyServiceAbility。 2. 调用REGISTER_AA宏将ServiceAbility注册到应用框架中,以便应用框架实例化MyServiceAbility。
``` ```
#include "my_service_ability.h" #include "my_service_ability.h"
...@@ -115,8 +115,8 @@ ...@@ -115,8 +115,8 @@
- OnStart() - OnStart()
该方法在创建Service的时候调用,用于做一些Service初始化且耗时较短的工作,在Service的整个生命周期只会调用一次。 该方法在创建Service的时候调用,用于做一些Service初始化且耗时较短的工作,在Service的整个生命周期只会调用一次。
``` ```ts
void MyServiceAbility::OnStart(const Want& want) void MyServiceAbility::OnStart(const Want& want)
{ {
printf("ServiceAbility::OnStart\n"); printf("ServiceAbility::OnStart\n");
...@@ -126,8 +126,8 @@ ...@@ -126,8 +126,8 @@
- OnConnect​() - OnConnect​()
在组件和服务连接时调用,该方法返回SvcIdentity,组件可以通过它与服务交互。 在组件和服务连接时调用,该方法返回SvcIdentity,组件可以通过它与服务交互。
``` ```ts
const SvcIdentity *MyServiceAbility::OnConnect(const Want &want) const SvcIdentity *MyServiceAbility::OnConnect(const Want &want)
{ {
printf("ServiceAbility::OnConnect\n"); printf("ServiceAbility::OnConnect\n");
...@@ -142,8 +142,8 @@ ...@@ -142,8 +142,8 @@
4. 重写消息处理方法。 4. 重写消息处理方法。
MsgHandle是Service用来处理客户端消息的方法。其中funcId是客户端传过来的消息类型,request是客户端传过来的序列化请求参数。如果用户在处理完成之后想要把结果传回去,需要把结果序列化后写入reply中。 MsgHandle是Service用来处理客户端消息的方法。其中funcId是客户端传过来的消息类型,request是客户端传过来的序列化请求参数。如果用户在处理完成之后想要把结果传回去,需要把结果序列化后写入reply中。
``` ```ts
void ServiceAbility::MsgHandle(uint32_t funcId, IpcIo *request, IpcIo *reply) void ServiceAbility::MsgHandle(uint32_t funcId, IpcIo *request, IpcIo *reply)
{ {
printf("ServiceAbility::MsgHandle, funcId is %d\n", funcId); printf("ServiceAbility::MsgHandle, funcId is %d\n", funcId);
...@@ -159,15 +159,15 @@ ...@@ -159,15 +159,15 @@
5. 注册Service。 5. 注册Service。
Service也需要在应用清单文件config.json中进行注册,注册类型type需要设置为service。 Service也需要在应用清单文件config.json中进行注册,注册类型type需要设置为service。
``` ```ts
"abilities": [{ "abilities": [{
"name": "ServiceAbility", "name": "ServiceAbility",
"icon": "res/drawable/phone.png", "icon": "res/drawable/phone.png",
"label": "test app 2", "label": "test app 2",
"launchType": "standard", "launchType": "standard",
"type": "service", "type": "service",
"visible": true "exported": true
} }
] ]
``` ```
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
- Ability为用户提供了StartAbility()方法来启动另外一个Ability,因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。 - Ability为用户提供了StartAbility()方法来启动另外一个Ability,因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。
开发者可以通过Want的SetWantElement ()来设置目标服务信息。ElementName结构体的两个主要参数:第一个参数为包名称;第二个参数为目标Ability。 开发者可以通过Want的SetWantElement ()来设置目标服务信息。ElementName结构体的两个主要参数:第一个参数为包名称;第二个参数为目标Ability。
``` ```ts
{ {
Want want = { nullptr }; Want want = { nullptr };
ElementName element = { nullptr }; ElementName element = { nullptr };
...@@ -195,8 +195,8 @@ ...@@ -195,8 +195,8 @@
7. 连接Service。 7. 连接Service。
- 如果Service需要与Page Ability或其他应用组件中的Service进行交互,则应创建用于连接的Service。Service支持其他Ability通过ConnectAbility()与其进行连接,ConnectAbility()需要传入目标Service的Want,以及IAbilityConnection的实例来处理回调。IAbilityConnection提供了两个方法供用户实现,OnAbilityConnectDone()用来处理连接的回调,OnAbilityDisconnectDone()用来处理断开连接的回调。 - 如果Service需要与Page Ability或其他应用组件中的Service进行交互,则应创建用于连接的Service。Service支持其他Ability通过ConnectAbility()与其进行连接,ConnectAbility()需要传入目标Service的Want,以及IAbilityConnection的实例来处理回调。IAbilityConnection提供了两个方法供用户实现,OnAbilityConnectDone()用来处理连接的回调,OnAbilityDisconnectDone()用来处理断开连接的回调。
``` ```ts
{ {
// ability创建IAbilityConnection对象和定义IAbilityConnection的两个方法实现 // ability创建IAbilityConnection对象和定义IAbilityConnection的两个方法实现
IAbilityConnection abilityConnection = new IAbilityConnection(); IAbilityConnection abilityConnection = new IAbilityConnection();
...@@ -240,8 +240,8 @@ ...@@ -240,8 +240,8 @@
} }
``` ```
- 发起connect和disconnect。 - 发起connect和disconnect。
``` ```ts
{ {
// ability发起connect // ability发起connect
Want want = { nullptr }; Want want = { nullptr };
...@@ -276,8 +276,8 @@ ...@@ -276,8 +276,8 @@
1. 将经过安全签名的应用放置于指定的目录下。 1. 将经过安全签名的应用放置于指定的目录下。
2. 创建InstallParam实例和信号量。 2. 创建InstallParam实例和信号量。
``` ```ts
InstallParam installParam = { InstallParam installParam = {
.installLocation = INSTALL_LOCATION_INTERNAL_ONLY, // 安装到系统目录 .installLocation = INSTALL_LOCATION_INTERNAL_ONLY, // 安装到系统目录
.keepData = false .keepData = false
...@@ -286,8 +286,8 @@ ...@@ -286,8 +286,8 @@
``` ```
3. 定义回调函数。 3. 定义回调函数。
``` ```ts
static void InstallCallback(const uint8_t resultCode, const void *resultMessage) static void InstallCallback(const uint8_t resultCode, const void *resultMessage)
{ {
std::string strMessage = reinterpret_cast<const char *>(resultMessage); std::string strMessage = reinterpret_cast<const char *>(resultMessage);
...@@ -299,8 +299,8 @@ ...@@ -299,8 +299,8 @@
``` ```
4. 调用Install接口。 4. 调用Install接口。
``` ```ts
const uint32_t WAIT_TIMEOUT = 30; const uint32_t WAIT_TIMEOUT = 30;
sem_init(&g_sem, 0, 0); sem_init(&g_sem, 0, 0);
std::string installPath = /storage/bundle/demo.hap; // Hap包的存储路径 std::string installPath = /storage/bundle/demo.hap; // Hap包的存储路径
...@@ -317,8 +317,8 @@ ...@@ -317,8 +317,8 @@
卸载应用的时候可以选择是否保留应用的数据,开发者可以通过创建的InstallParam实例的成员变量keepData来确定。当keepData为true, 卸载应用之后将保留应用的数据,当keepData为false时,卸载应用之后将不会保留应用的数据。 卸载应用的时候可以选择是否保留应用的数据,开发者可以通过创建的InstallParam实例的成员变量keepData来确定。当keepData为true, 卸载应用之后将保留应用的数据,当keepData为false时,卸载应用之后将不会保留应用的数据。
1. 创建InstallParam实例和信号量。 1. 创建InstallParam实例和信号量。
``` ```ts
static sem_t g_sem; static sem_t g_sem;
InstallParam installParam = { InstallParam installParam = {
.installLocation = 1, .installLocation = 1,
...@@ -327,8 +327,8 @@ ...@@ -327,8 +327,8 @@
``` ```
2. 定义回调函数。 2. 定义回调函数。
``` ```ts
static void UninstallCallback(const uint8_t resultCode, const void *resultMessage) static void UninstallCallback(const uint8_t resultCode, const void *resultMessage)
{ {
std::string strMessage = reinterpret_cast<const char *>(resultMessage); std::string strMessage = reinterpret_cast<const char *>(resultMessage);
...@@ -342,8 +342,8 @@ ...@@ -342,8 +342,8 @@
``` ```
3. 调用Uninstall接口。 3. 调用Uninstall接口。
``` ```ts
sem_init(&g_sem, 0, 0); sem_init(&g_sem, 0, 0);
const uint32_t WAIT_TIMEOUT = 30; const uint32_t WAIT_TIMEOUT = 30;
std::string BUNDLE_NAME = com.example.demo; // 卸载应用的包名 std::string BUNDLE_NAME = com.example.demo; // 卸载应用的包名
...@@ -360,22 +360,22 @@ ...@@ -360,22 +360,22 @@
开发者可以利用BundleManager提供的接口GetBundleInfo来查询系统内已安装应用的包信息。 开发者可以利用BundleManager提供的接口GetBundleInfo来查询系统内已安装应用的包信息。
1. 创建以及初始化BundleInfo。 1. 创建以及初始化BundleInfo。
``` ```ts
BundleInfo bundleInfo; BundleInfo bundleInfo;
(void) memset_s(&bundleInfo, sizeof(BundleInfo), 0, sizeof(BundleInfo)); (void) memset_s(&bundleInfo, sizeof(BundleInfo), 0, sizeof(BundleInfo));
``` ```
2. 调用GetBundleInfo接口,指定查询应用的包名,同时指定flag来确定获取的BundleInfo中是否含有元能力信息(实例代码以含有元能力信息为例)。 2. 调用GetBundleInfo接口,指定查询应用的包名,同时指定flag来确定获取的BundleInfo中是否含有元能力信息(实例代码以含有元能力信息为例)。
``` ```ts
std::string BUNDLE_NAME = "com.example.demo"; std::string BUNDLE_NAME = "com.example.demo";
uint8_t ret = GetBundleInfo(BUNDLE_NAME.c_str(), 1, &bundleInfo); // flags = 1,获取包信息中含有元能力信息 uint8_t ret = GetBundleInfo(BUNDLE_NAME.c_str(), 1, &bundleInfo); // flags = 1,获取包信息中含有元能力信息
``` ```
3. 使用完获取的BundleInfo之后,要及时清理掉其内部所占用的内存空间避免内存泄漏。 3. 使用完获取的BundleInfo之后,要及时清理掉其内部所占用的内存空间避免内存泄漏。
``` ```ts
ClearBundleInfo(&bundleInfo); ClearBundleInfo(&bundleInfo);
``` ```
...@@ -401,7 +401,7 @@ ...@@ -401,7 +401,7 @@
| --force | - | 是否覆盖原有同名文件,默认为false | 是 | | --force | - | 是否覆盖原有同名文件,默认为false | 是 |
- 打包示例 - 打包示例
**图1** 开发视图 **图1** 开发视图
![zh-cn_image_0000001154005784](figures/zh-cn_image_0000001154005784.png) ![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.
先完成此消息的编辑!
想要评论请 注册