未验证 提交 522e22b5 编写于 作者: Z zhongjianfei 提交者: Gitee

!74 修改bug

Merge pull request !74 from zhongjianfei/zjf1202
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
- [module的切换](module-switch.md) - [module的切换](module-switch.md)
- 组件切换 - 组件切换
- [PageAbility切换](pageability-switch.md) - [PageAbility切换](pageability-switch.md)
- [ServiceAbility切换](aerviceability-switch.md) - [ServiceAbility切换](serviceability-switch.md)
- [DataAbility切换](dataability-switch.md) - [DataAbility切换](dataability-switch.md)
- [卡片切换](widget-switch.md) - [卡片切换](widget-switch.md)
- API切换 - API切换
......
...@@ -5,31 +5,35 @@ ...@@ -5,31 +5,35 @@
- **应用包名配置** - **应用包名配置**
应用包名需在config.json文件中app标签下配置bundleName字段,该字段用于指定应用的包名,需保证唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。包名通常采用反向域名形式表示(例如,"com.example.myapplication")。建议第一级为域名后缀"com",第二级为厂商/个人名,也可以采用多级。应用名称配置可以参考[app标签说明](../quick-start/app-structure.md) 应用包名需在config.json文件中app标签下配置bundleName字段,该字段用于指定应用的包名,需保证唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。包名通常采用反向域名形式表示(例如,"com.example.myapplication")。建议第一级为域名后缀"com",第二级为厂商/个人名,也可以采用多级。应用名称配置可以参考[app标签说明](../quick-start/app-structure.md)
- **应用图标和标签配置** - **应用图标和标签配置**
FA模型不支持直接配置应用图标和标签,会以符合规则的PageAbility的图标和标签作为应用图标和标签。PageAbility的图标和标签配置请参见[PageAbility组件配置](pageability-configuration.md)。需在config.json文件的abilities标签下配置icon字段,标签值为资源文件的索引。图标需要在配置IDE的资源文件中,路径为/resource/base/media。取值示例:$media:ability_icon。标签值为资源文件的索引,标识Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",则该Ability的icon和label将同时作为应用的icon和label。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon和label作为应用的icon和label。应用图标和标签配置可以参考[ablities标签说明](../quick-start/module-structure.md) FA模型不支持直接配置应用图标和标签,会以符合规则的PageAbility的图标和标签作为应用图标和标签。PageAbility的图标和标签配置请参见[PageAbility组件配置](pageability-configuration.md)。需在config.json文件的abilities标签下配置icon字段,标签值为资源文件的索引。图标需要在配置IDE的资源文件中,路径为/resource/base/media。取值示例:$media:ability_icon。标签值为资源文件的索引,标识Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",则该Ability的icon和label将同时作为应用的icon和label。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon和label作为应用的icon和label。应用图标和标签配置可以参考[ablities标签说明](../quick-start/module-structure.md)
```json ```json
"abilities": [ "abilities": [
"icon": "$media:icon", "icon": "$media:icon",
"label": "$string:MainAbility_label", "label": "$string:MainAbility_label",
"skills": [ "skills": [
{ {
"entities": ["entity.system.home"], "entities": ["entity.system.home"],
"actions": ["action.system.home"] "actions": ["action.system.home"]
} }
] ]
// ... // ...
} }
``` ```
- **应用版本声明配置** - **应用版本声明配置**
应用版本声明配置需在config.json中的app标签下配置version字段,以说明应用当前的版本号和版本名称以及应用能够兼容的最低历史版本号。应用版本配置说明可以参考[version标签说明](../quick-start/module-structure.md) 应用版本声明配置需在config.json中的app标签下配置version字段,以说明应用当前的版本号和版本名称以及应用能够兼容的最低历史版本号。应用版本配置说明可以参考[version标签说明](../quick-start/module-structure.md)
- **Module支持的设备类型配置** - **Module支持的设备类型配置**
Module支持的设备类型需要在config.json文件中配置deviceType字段,如果deviceType标签中添加了某种设备,则表明当前的module支持在改设备上运行。具体的deviceType配置规则可以参考[deviceType标签说明](../quick-start/module-structure.md) Module支持的设备类型需要在config.json文件中配置deviceType字段,如果deviceType标签中添加了某种设备,则表明当前的module支持在改设备上运行。具体的deviceType配置规则可以参考[deviceType标签说明](../quick-start/module-structure.md)
- **组件权限申请配置** - **组件权限申请配置**
组件权限申请配置需在confog.json中的module标签下配置reqPermission字段。来声明需要申请权限的名称,申请权限的原因以及权限使用的场景。组件权限申请可以参考[reqPermission标签说明](../quick-start/module-structure.md)
组件权限申请配置需在confog.json中的module标签下配置reqPermission字段。来声明需要申请权限的名称,申请权限的原因以及权限使用的场景。组件权限申请可以参考[reqPermission标签说明](../quick-start/module-structure.md)
\ No newline at end of file
...@@ -63,7 +63,7 @@ let connId = featureAbility.connectAbility(request, option) ...@@ -63,7 +63,7 @@ let connId = featureAbility.connectAbility(request, option)
同时,Service侧也需要在onConnect()时返回IRemoteObject,从而定义与Service进行通信的接口。onConnect()需要返回一个IRemoteObject对象。OpenHarmony提供了IRemoteObject的默认实现,开发者可以通过继承rpc.RemoteObject来创建自定义的实现类。 同时,Service侧也需要在onConnect()时返回IRemoteObject,从而定义与Service进行通信的接口。onConnect()需要返回一个IRemoteObject对象。OpenHarmony提供了IRemoteObject的默认实现,开发者可以通过继承rpc.RemoteObject来创建自定义的实现类。
Service侧把自身的实例返回给调用侧的代码示例如下: Service侧把自身的实例返回给调用侧的示例代码如下:
```ts ```ts
import rpc from "@ohos.rpc" import rpc from "@ohos.rpc"
......
...@@ -2,59 +2,61 @@ ...@@ -2,59 +2,61 @@
1. 创建ServiceAbility。 1. 创建ServiceAbility。
重写ServiceAbility的生命周期方法,添加其他Ability请求与ServiceAbility交互时的处理方法。
```ts 重写ServiceAbility的生命周期方法,添加其他Ability请求与ServiceAbility交互时的处理方法。
import rpc from "@ohos.rpc"
```ts
class FirstServiceAbilityStub extends rpc.RemoteObject { import rpc from "@ohos.rpc"
constructor(des: any) {
if (typeof des === 'string') { class FirstServiceAbilityStub extends rpc.RemoteObject {
super(des) constructor(des: any) {
} else { if (typeof des === 'string') {
return super(des)
} } else {
} return
} }
}
export default { }
onStart() {
console.info('ServiceAbility onStart') export default {
}, onStart() {
onStop() { console.info('ServiceAbility onStart')
console.info('ServiceAbility onStop') },
}, onStop() {
onCommand(want, startId) { console.info('ServiceAbility onStop')
console.info('ServiceAbility onCommand') },
}, onCommand(want, startId) {
onConnect(want) { console.info('ServiceAbility onCommand')
console.info('ServiceAbility onConnect' + want) },
return new FirstServiceAbilityStub('test') onConnect(want) {
}, console.info('ServiceAbility onConnect' + want)
onDisconnect(want) { return new FirstServiceAbilityStub('test')
console.info('ServiceAbility onDisconnect' + want) },
} onDisconnect(want) {
} console.info('ServiceAbility onDisconnect' + want)
``` }
}
```
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。"visible"属性表示ServiceAbility是否可以被其他应用调用,true表示可以被其他应用调用,false表示不能被其他应用调用(仅应用内可以调用)。若ServiceAbility需要被其他应用调用,注册ServiceAbility时需要设置"visible"为true,同时需要设置支持关联启动。ServiceAbility的启动规则详见[组件启动规则](component-startup-rules.md)章节。
```json
{ ```json
"module": { {
"abilities": [ "module": {
{ "abilities": [
"name": ".ServiceAbility", {
"srcLanguage": "ets", "name": ".ServiceAbility",
"srcPath": "ServiceAbility", "srcLanguage": "ets",
"icon": "$media:icon", "srcPath": "ServiceAbility",
"description": "hap sample empty service", "icon": "$media:icon",
"type": "service", "description": "hap sample empty service",
"visible": true "type": "service",
"visible": true
}
]
} }
] }
} ```
}
```
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
![model-switch-overview2](figures/model-switch-overview2.png) ![model-switch-overview2](figures/model-switch-overview2.png)
- [组件切换](pageability-switch.md):PageAbility/ServiceAbility/DataAbility切换为UIAbility和ExtensionAbility(图片仅展示了FA模型的PageAbility切换成Stage模型的UIAbility:下图左侧为FA模型,app.ets为FA模型的PageAbility组件;下图右侧为Stage模型,EntryAbility.ts为Stage模型的UIAbility组件)。 - [组件切换](pageability-switch.md):PageAbility/ServiceAbility/DataAbility切换为UIAbility和ExtensionAbility(图片仅展示了FA模型的PageAbility切换成Stage模型的UIAbility:下图左侧为FA模型,app.ets为FA模型的PageAbility组件;下图右侧为Stage模型,EntryAbility.ts为Stage模型的UIAbility组件)。
![model-switch-overview3](figures/model-switch-overview3.png)
![model-switch-overview3](figures/model-switch-overview3.png)
- [卡片切换](widget-switch.md):将FA模型的FormAbility切换为Stage模型的FormExtensionAbility(下图中的**Service Widget**在FA中为FormAbility,在Stage中为FormExtensionAbility)。 - [卡片切换](widget-switch.md):将FA模型的FormAbility切换为Stage模型的FormExtensionAbility(下图中的**Service Widget**在FA中为FormAbility,在Stage中为FormExtensionAbility)。
![model-switch-overview4](figures/model-switch-overview4.png) ![model-switch-overview4](figures/model-switch-overview4.png)
......
# module的切换 # module的切换
从FA模型切换到Stage模型时,开发者需要将config.json文件module标签下的配置迁移到module.json5配置文件module标签下,具体差异见下 从FA模型切换到Stage模型时,开发者需要将config.json文件module标签下的配置迁移到module.json5配置文件module标签下,具体差异见下列表格
### **表1** FA模型module标签与Stage模型module标签差异对比
**表1** FA模型module标签与Stage模型module标签差异对比
| FA标签 | 标签说明 | 对应的Stage标签 | 差异说明 | | FA标签 | 标签说明 | 对应的Stage标签 | 差异说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
......
...@@ -6,28 +6,26 @@ ...@@ -6,28 +6,26 @@
**表1** PageAbility的启动模式 **表1** PageAbility的启动模式
| 启动模式 | 描述 | 说明 | | 启动模式 | 描述 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| singleton | 单实例模式 | 每次调用startAbility方法时,如果应用进程中该类型的Ability实例已经存在,则复用已有的实例,系统中只存在唯一一个实例。表现为在最近任务列表中只有一个Ability实例。<br/>典型场景:当用户打开视频播放应用并观看视频,回到桌面后,再次打开视频播放应用,应用仍为回到桌面之前正在观看的视频。 | | singleton | 单实例模式 | 每次调用startAbility方法时,如果应用进程中该类型的Ability实例已经存在,则复用已有的实例,系统中只存在唯一一个实例。表现为在最近任务列表中只有一个Ability实例。<br/>典型场景:当用户打开视频播放应用并观看视频,回到桌面后,再次打开视频播放应用,应用仍为回到桌面之前正在观看的视频。 |
| standard | 标准模式 | 缺省启动模式。每次调用startAbility方法时,都会在应用进程中创建一个新的Ability实例。表现为在最近任务列表中可以看到有多个该类型的Ability实例。<br/>典型场景:当用户打开文档应用,选择新建文档的时候,每次点击新建文档,都会创建一个新的文档任务,在最近任务列表中可以看到多个新建的文档任务。 | | standard | 标准模式 | 缺省启动模式。每次调用startAbility方法时,都会在应用进程中创建一个新的Ability实例。表现为在最近任务列表中可以看到有多个该类型的Ability实例。<br/>典型场景:当用户打开文档应用,选择新建文档的时候,每次点击新建文档,都会创建一个新的文档任务,在最近任务列表中可以看到多个新建的文档任务。 |
应用开发者可在config.json配置文件中通过“launchType”配置启动模式。示例如下: 应用开发者可在config.json配置文件中通过“launchType”配置启动模式。示例如下:
```json ```json
{ {
"module": { "module": {
// ... // ...
"abilities": [ "abilities": [
{ {
// singleton: 单实例模式 // singleton: 单实例模式
// standard: 标准模式 // standard: 标准模式
"launchType": "standard", "launchType": "standard",
// ... // ...
} }
] ]
} }
} }
``` ```
...@@ -38,6 +36,6 @@ ...@@ -38,6 +36,6 @@
**表2** 单实例启动模式特有的回调函数说明 **表2** 单实例启动模式特有的回调函数说明
| 接口名 | 接口描述 | | 接口名 | 接口描述 |
| -------- | -------- | | -------- | -------- |
| onNewWant(want:&nbsp;Want) | 单实例启动模式,PageAbility非首次启动时调用onNewWant方法,开发者可以在该方法中获取want,进而根据want做进一步处理。例如,单实例PageAbility迁移场景,指定页面拉起PageAbility场景。 | | onNewWant(want:&nbsp;Want) | 单实例启动模式,PageAbility非首次启动时调用onNewWant方法,开发者可以在该方法中获取want,进而根据want做进一步处理。例如,单实例PageAbility迁移场景,指定页面拉起PageAbility场景。 |
...@@ -3,20 +3,20 @@ ...@@ -3,20 +3,20 @@
PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。 PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。
**图1** PageAbility生命周期流转
**图1** PageAbility生命周期流转  
![page-ability-lifecycle](figures/page-ability-lifecycle.png) ![page-ability-lifecycle](figures/page-ability-lifecycle.png)
**表1** PageAbility生命周期状态说明 **表1** PageAbility生命周期状态说明
| 生命周期状态 | 生命周期状态说明 | | 生命周期状态 | 生命周期状态说明 |
| -------- | -------- | | -------- | -------- |
| UNINITIALIZED | 未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。 | | UNINITIALIZED | 未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。 |
| INITIAL | 初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入INACTIVE状态。 | | INITIAL | 初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入INACTIVE状态。 |
| INACTIVE | 失去焦点状态,表示当前窗口已显示但是无焦点状态。 | | INACTIVE | 失去焦点状态,表示当前窗口已显示但是无焦点状态。 |
| ACTIVE | 前台激活状态,表示当前窗口已显示,并获取焦点。 | | ACTIVE | 前台激活状态,表示当前窗口已显示,并获取焦点。 |
| BACKGROUND | 后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。 | | BACKGROUND | 后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。 |
应用开发者可以在app.js/app.ets中重写生命周期相关回调函数,PageAbility生命周期相关回调函数见下表。 应用开发者可以在app.js/app.ets中重写生命周期相关回调函数,PageAbility生命周期相关回调函数见下表。
...@@ -24,20 +24,20 @@ PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND ...@@ -24,20 +24,20 @@ PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND
**表2** PageAbility生命周期回调接口说明 **表2** PageAbility生命周期回调接口说明
| 接口名 | 接口描述 | | 接口名 | 接口描述 |
| -------- | -------- | | -------- | -------- |
| onCreate() | Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。 | | onCreate() | Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。 |
| onDestroy() | 应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。 | | onDestroy() | 应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。 |
| onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 | | onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 |
| onInactive() | Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。 | | onInactive() | Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。 |
| onShow() | Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时用户在屏幕可以看到该Ability。 | | onShow() | Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时用户在屏幕可以看到该Ability。 |
| onHide() | Ability由前台切换到后台不可见状态时调用onHide方法,此时用户在屏幕看不到该Ability。 | | onHide() | Ability由前台切换到后台不可见状态时调用onHide方法,此时用户在屏幕看不到该Ability。 |
PageAbility生命周期回调与生命周期状态的关系如下图所示。 PageAbility生命周期回调与生命周期状态的关系如下图所示。
**图2** PageAbility生命周期回调与生命周期状态的关系
**图2** PageAbility生命周期回调与生命周期状态的关系  
![fa-pageAbility-lifecycle](figures/fa-pageAbility-lifecycle.png) ![fa-pageAbility-lifecycle](figures/fa-pageAbility-lifecycle.png)
......
...@@ -14,17 +14,17 @@ ...@@ -14,17 +14,17 @@
对应config.json文件的示例代码如下所示: 对应config.json文件的示例代码如下所示:
```ts ```json
{ {
"module": { "module": {
// ... // ...
"reqPermissions": [ "reqPermissions": [
{ {
"name": "ohos.permission.READ_CALENDAR" "name": "ohos.permission.READ_CALENDAR"
// ... // ...
} }
] ]
} }
} }
``` ```
...@@ -32,8 +32,6 @@ ...@@ -32,8 +32,6 @@
通过动态弹窗向用户申请授权: 通过动态弹窗向用户申请授权:
```ts ```ts
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
......
...@@ -71,20 +71,20 @@ FormAbility生命周期接口如下: ...@@ -71,20 +71,20 @@ FormAbility生命周期接口如下:
FormProvider类有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-app-form-formprovider.md) FormProvider类有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-app-form-formprovider.md)
| 接口名 | 描述 | | 接口名 | 描述 |
| -------- | -------- | | -------- | -------- |
| setFormNextRefreshTime(formId:&nbsp;string,&nbsp;minute:&nbsp;number,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void; | 设置指定卡片的下一次更新时间。 | | setFormNextRefreshTime(formId:&nbsp;string,&nbsp;minute:&nbsp;number,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void; | 设置指定卡片的下一次更新时间。 |
| setFormNextRefreshTime(formId:&nbsp;string,&nbsp;minute:&nbsp;number):&nbsp;Promise&lt;void&gt;; | 设置指定卡片的下一次更新时间,以promise方式返回。 | | setFormNextRefreshTime(formId:&nbsp;string,&nbsp;minute:&nbsp;number):&nbsp;Promise&lt;void&gt;; | 设置指定卡片的下一次更新时间,以promise方式返回。 |
| updateForm(formId:&nbsp;string,&nbsp;formBindingData:&nbsp;FormBindingData,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void; | 更新指定的卡片。 | | updateForm(formId:&nbsp;string,&nbsp;formBindingData:&nbsp;FormBindingData,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void; | 更新指定的卡片。 |
| updateForm(formId:&nbsp;string,&nbsp;formBindingData:&nbsp;FormBindingData):&nbsp;Promise&lt;void&gt;; | 更新指定的卡片,以promise方式返回。 | | updateForm(formId:&nbsp;string,&nbsp;formBindingData:&nbsp;FormBindingData):&nbsp;Promise&lt;void&gt;; | 更新指定的卡片,以promise方式返回。 |
formBindingData类有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-app-form-formbindingdata.md) formBindingData类有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-app-form-formbindingdata.md)
| 接口名 | 描述 | | 接口名 | 描述 |
| -------- | -------- | | -------- | -------- |
| createFormBindingData(obj?:&nbsp;Object&nbsp;\|&nbsp;string):&nbsp;FormBindingData | 创建一个FormBindingData对象。 | | createFormBindingData(obj?:&nbsp;Object&nbsp;\|&nbsp;string):&nbsp;FormBindingData | 创建一个FormBindingData对象。 |
## 开发步骤 ## 开发步骤
...@@ -174,13 +174,13 @@ FA卡片开发,即基于[FA模型](../ability/fa-brief.md)的卡片提供方 ...@@ -174,13 +174,13 @@ FA卡片开发,即基于[FA模型](../ability/fa-brief.md)的卡片提供方
卡片需要在应用配置文件config.json中进行配置。 卡片需要在应用配置文件config.json中进行配置。
- js模块,用于对应卡片的js相关资源,内部字段结构说明: - js模块,用于对应卡片的js相关资源,内部字段结构说明:
| 属性名称 | 含义 | 数据类型 | 是否可缺省 | | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| name | 表示JS&nbsp;Component的名字。该标签不可缺省,默认值为default。 | 字符串 | 否 | | name | 表示JS&nbsp;Component的名字。该标签不可缺省,默认值为default。 | 字符串 | 否 |
| pages | 表示JS&nbsp;Component的页面用于列举JS&nbsp;Component中每个页面的路由信息[页面路径+页面名称]。该标签不可缺省,取值为数组,数组第一个元素代表JS&nbsp;FA首页。 | 数组 | 否 | | pages | 表示JS&nbsp;Component的页面用于列举JS&nbsp;Component中每个页面的路由信息[页面路径+页面名称]。该标签不可缺省,取值为数组,数组第一个元素代表JS&nbsp;FA首页。 | 数组 | 否 |
| window | 用于定义与显示窗口相关的配置。 | 对象 | 可缺省 | | window | 用于定义与显示窗口相关的配置。 | 对象 | 可缺省 |
| type | 表示JS应用的类型。取值范围如下:<br/>normal:标识该JS&nbsp;Component为应用实例。<br/>form:标识该JS&nbsp;Component为卡片实例。 | 字符串 | 可缺省,缺省值为“normal” | | type | 表示JS应用的类型。取值范围如下:<br/>normal:标识该JS&nbsp;Component为应用实例。<br/>form:标识该JS&nbsp;Component为卡片实例。 | 字符串 | 可缺省,缺省值为“normal” |
| mode | 定义JS组件的开发模式。 | 对象 | 可缺省,缺省值为空 | | mode | 定义JS组件的开发模式。 | 对象 | 可缺省,缺省值为空 |
配置示例如下: 配置示例如下:
...@@ -198,23 +198,23 @@ FA卡片开发,即基于[FA模型](../ability/fa-brief.md)的卡片提供方 ...@@ -198,23 +198,23 @@ FA卡片开发,即基于[FA模型](../ability/fa-brief.md)的卡片提供方
``` ```
- abilities模块,用于对应卡片的FormAbility,内部字段结构说明: - abilities模块,用于对应卡片的FormAbility,内部字段结构说明:
| 属性名称 | 含义 | 数据类型 | 是否可缺省 | | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| name | 表示卡片的类名。字符串最大长度为127字节。 | 字符串 | 否 | | name | 表示卡片的类名。字符串最大长度为127字节。 | 字符串 | 否 |
| description | 表示卡片的描述。取值可以是描述性内容,也可以是对描述性内容的资源索引,以支持多语言。字符串最大长度为255字节。 | 字符串 | 可缺省,缺省为空。 | | description | 表示卡片的描述。取值可以是描述性内容,也可以是对描述性内容的资源索引,以支持多语言。字符串最大长度为255字节。 | 字符串 | 可缺省,缺省为空。 |
| isDefault | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。<br/>true:默认卡片。<br/>false:非默认卡片。 | 布尔值 | 否 | | isDefault | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。<br/>true:默认卡片。<br/>false:非默认卡片。 | 布尔值 | 否 |
| type | 表示卡片的类型。取值范围如下:<br/>JS:JS卡片。 | 字符串 | 否 | | type | 表示卡片的类型。取值范围如下:<br/>JS:JS卡片。 | 字符串 | 否 |
| colorMode | 表示卡片的主题样式,取值范围如下:<br/>auto:自适应。<br/>dark:深色主题。<br/>light:浅色主题。 | 字符串 | 可缺省,缺省值为“auto”。 | | colorMode | 表示卡片的主题样式,取值范围如下:<br/>auto:自适应。<br/>dark:深色主题。<br/>light:浅色主题。 | 字符串 | 可缺省,缺省值为“auto”。 |
| supportDimensions | 表示卡片支持的外观规格,取值范围:<br/>1&nbsp;\*&nbsp;2:表示1行2列的二宫格。<br/>2&nbsp;\*&nbsp;2:表示2行2列的四宫格。<br/>2&nbsp;\*&nbsp;4:表示2行4列的八宫格。<br/>4&nbsp;\*&nbsp;4:表示4行4列的十六宫格。 | 字符串数组 | 否 | | supportDimensions | 表示卡片支持的外观规格,取值范围:<br/>1&nbsp;\*&nbsp;2:表示1行2列的二宫格。<br/>2&nbsp;\*&nbsp;2:表示2行2列的四宫格。<br/>2&nbsp;\*&nbsp;4:表示2行4列的八宫格。<br/>4&nbsp;\*&nbsp;4:表示4行4列的十六宫格。 | 字符串数组 | 否 |
| defaultDimension | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串 | 否 | | defaultDimension | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串 | 否 |
| updateEnabled | 表示卡片是否支持周期性刷新,取值范围:<br/>true:表示支持周期性刷新,可以在定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)两种方式任选其一,优先选择定时刷新。<br/>false:表示不支持周期性刷新。 | 布尔类型 | 否 | | updateEnabled | 表示卡片是否支持周期性刷新,取值范围:<br/>true:表示支持周期性刷新,可以在定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)两种方式任选其一,优先选择定时刷新。<br/>false:表示不支持周期性刷新。 | 布尔类型 | 否 |
| scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。<br/>updateDuration参数优先级高于scheduledUpdateTime,两者同时配置时,以updateDuration配置的刷新时间为准。 | 字符串 | 可缺省,缺省值为“0:0”。 | | scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。<br/>updateDuration参数优先级高于scheduledUpdateTime,两者同时配置时,以updateDuration配置的刷新时间为准。 | 字符串 | 可缺省,缺省值为“0:0”。 |
| updateDuration | 表示卡片定时刷新的更新周期,单位为30分钟,取值为自然数。<br/>当取值为0时,表示该参数不生效。<br/>当取值为正整数N时,表示刷新周期为30\*N分钟。<br/>updateDuration参数优先级高于scheduledUpdateTime,两者同时配置时,以updateDuration配置的刷新时间为准。 | 数值 | 可缺省,缺省值为“0”。 | | updateDuration | 表示卡片定时刷新的更新周期,单位为30分钟,取值为自然数。<br/>当取值为0时,表示该参数不生效。<br/>当取值为正整数N时,表示刷新周期为30\*N分钟。<br/>updateDuration参数优先级高于scheduledUpdateTime,两者同时配置时,以updateDuration配置的刷新时间为准。 | 数值 | 可缺省,缺省值为“0”。 |
| formConfigAbility | 表示卡片的配置跳转链接,采用URI格式。 | 字符串 | 可缺省,缺省值为空。 | | formConfigAbility | 表示卡片的配置跳转链接,采用URI格式。 | 字符串 | 可缺省,缺省值为空。 |
| formVisibleNotify | 标识是否允许卡片使用卡片可见性通知。 | 字符串 | 可缺省,缺省值为空。 | | formVisibleNotify | 标识是否允许卡片使用卡片可见性通知。 | 字符串 | 可缺省,缺省值为空。 |
| jsComponentName | 表示JS卡片的Component名称。字符串最大长度为127字节。 | 字符串 | 否 | | jsComponentName | 表示JS卡片的Component名称。字符串最大长度为127字节。 | 字符串 | 否 |
| metaData | 表示卡片的自定义信息,包含customizeData数组标签。 | 对象 | 可缺省,缺省值为空。 | | metaData | 表示卡片的自定义信息,包含customizeData数组标签。 | 对象 | 可缺省,缺省值为空。 |
| customizeData | 表示自定义的卡片信息。 | 对象数组 | 可缺省,缺省值为空。 | | customizeData | 表示自定义的卡片信息。 | 对象数组 | 可缺省,缺省值为空。 |
配置示例如下: 配置示例如下:
...@@ -243,7 +243,7 @@ FA卡片开发,即基于[FA模型](../ability/fa-brief.md)的卡片提供方 ...@@ -243,7 +243,7 @@ FA卡片开发,即基于[FA模型](../ability/fa-brief.md)的卡片提供方
"supportDimensions": ["2*2"], "supportDimensions": ["2*2"],
"type": "JS", "type": "JS",
"updateEnabled": true "updateEnabled": true
}] }]
}] }]
``` ```
......
...@@ -5,20 +5,17 @@ ...@@ -5,20 +5,17 @@
- 卡片页面布局:FA模型卡片和Stage模型卡片的布局都采用类web范式开发可以直接复用。 - 卡片页面布局:FA模型卡片和Stage模型卡片的布局都采用类web范式开发可以直接复用。
- 卡片配置文件:FA模型的卡片配置在config.json中,Stage卡片配置在module.json5和form_config.json中(如下图1和图2)。 - 卡片配置文件:FA模型的卡片配置在config.json中,Stage卡片配置在module.json5和form_config.json中(如下图1和图2)。
- 卡片业务逻辑:FA模型和Stage模型在卡片入口文件以及生命周期存在细微的差异(如下图3和图4)。 - 卡片业务逻辑:FA模型和Stage模型在卡片入口文件以及生命周期存在细微的差异(如下图3和图4)。
| 配置项 | FA模型 | Stage模型 |
| 配置项 | FA模型 | Stage模型 | | ---------------- | ------------------------------------------- | ------------------------------------------------------------ |
| -------- | -------- | -------- | | 配置项位置 | formAbility和forms配置都在config.json文件里 | 一级目录module.json5配置文件中配置extensionAbilities(针对formExtensionAbility的配置),二级目录form_config.json文件中配置forms(针对formExtensionAbility里包含的forms的详细配置) |
| 配置项位置 | formAbility和forms配置都在config.json文件里 | 一级目录module.json5配置文件中配置extensionAbilities(针对formExtensionAbility的配置),二级目录form_config.json文件中配置forms(针对formExtensionAbility里包含的forms的详细配置) | | 卡片代码路径 | srcPath,不带文件名 | srcEntrance,带文件名 |
| 卡片代码路径 | srcPath,不带文件名 | srcEntrance,带文件名 | | 语言 | srcLanguage支持配置为js或ets | 无此配置项,只支持ets |
| 语言 | srcLanguage支持配置为js或ets | 无此配置项,只支持ets | | 是否使能卡片 | formsEnabled | 无,type配置项配置为form即使能 |
| 是否使能卡片 | formsEnabled | 无,type配置项配置为form即使能 | | ability类型 | type:service | type:form |
| ability类型 | type:service | type:form | | 二级目录配置标签 | 无 | metadata:包含name、value、resource。其中resource用于指向卡片二级目录form_config.json文件的位置 |
| 二级目录配置标签 | 无 | metadata。包含name、value、resource。resource用于指向卡片二级目录form_config.json文件的位置 |
入口配置差异示意图1: 入口配置差异示意图1:
...@@ -33,10 +30,10 @@ ...@@ -33,10 +30,10 @@
![widget-switch2](figures/widget-switch2.png) ![widget-switch2](figures/widget-switch2.png)
| 入口及生命周期 | FA模型 | Stage模型 | | 入口及生命周期 | FA模型 | Stage模型 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| 入口文件 | srcPath指向的目录下的form.ts | srcEntrance指向的文件 | | 入口文件 | srcPath指向的目录下的form.ts | srcEntrance指向的文件 |
| 生命周期 | export&nbsp;default | import&nbsp;FormExtension&nbsp;from&nbsp;'\@ohos.app.form.FormExtensionAbility';<br/>export&nbsp;default&nbsp;class&nbsp;FormAbility&nbsp;extends&nbsp;FormExtension | | 生命周期 | export&nbsp;default | import&nbsp;FormExtension&nbsp;from&nbsp;'\@ohos.app.form.FormExtensionAbility';<br/>export&nbsp;default&nbsp;class&nbsp;FormAbility&nbsp;extends&nbsp;FormExtension |
入口文件差异示意图3: 入口文件差异示意图3:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册