Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
3117aca9
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看板
提交
3117aca9
编写于
5月 23, 2022
作者:
U
unknown
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add user
Signed-off-by:
N
unknown
<
sijunjie@huawei.com
>
上级
fbe4fd81
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
23 deletion
+17
-23
zh-cn/application-dev/ability/context-userguide.md
zh-cn/application-dev/ability/context-userguide.md
+17
-23
未找到文件。
zh-cn/application-dev/ability/context-userguide.md
浏览文件 @
3117aca9
# 应用上下文使用指导
## Context概述
context是应用中对象的上下文,提供获取应用程序环境信息的能力。
## Context整体结构介绍
Context是应用中对象的上下文,提供获取应用程序环境信息的能力。
OpenHarmony的应用框架分为FA模型和Stage两种模型。对应存在两套Context机制适配两种应用框架模型
:
OpenHarmony的应用框架分为FA模型和Stage两种模型。对应存在两套Context机制适配两种应用框架模型
,其中application/BaseContext属于通用的Context基类,里面有一个属性stageMode,用来区分开发模型是FA还是Stage。
**application/BaseContext**
属于一个通用的Context基类,既不属于FA模型也不属于Stage模型,里面只有一个属性stageMode,用来区分开发模型是FA还是Stage。
+ FA模型
只有app/Context中的方法属于FA模型对应的Context。该模式下,应用级别的Context和Ability级别的Context都是该类型的实例,如果在应用级别的Context里面调用了Ability级别的方法,会产生错误。所以开发者需要注意Context实例所代表的实际含义。
**FA模型**
只有app/Context中的方法属于FA模型对应的Context。该模式下,应用级别的Context和Ability级别的Context都是该类型的实例,如果在应用级别的Context里面调用了Ability级别的方法,会产生错误。所以开发者需要注意context实例所代表的实际含义。
+ Stage模型
除了app/Context之外的Context都属于Stage模型,分别有application/Context、application/ApplicationContext、application/AbilityStageContext、application/ExtensionContext、application/AbilityContext、application/FormExtensionContext等Context。这些Context的介绍及使用方式将会在
[
Stage模型和Context详细介绍
](
#stage模型和context详细介绍
)
种进行说明。
**Stage模型**
除了app/Context之外的Context都属于Stage模型,分别有application/Context、application/ApplicationContext、application/AbilityStageContext、application/ExtensionContext、application/AbilityContext、application/FormExtensionContext等Context。这些Context的介绍及使用方式将会在
[
Stage模型和Context详细介绍
](
#stage模型和context详细介绍
)
种进行说明。
![
context概述.png
](
C:\Users\jie\Desktop\context概述.png
)
![
contextIntroduction
](
figures/contextIntroduction.png
)
图1 - Context整体类图
## FA模型的Context详细介绍
...
...
@@ -22,11 +22,11 @@
FA模型只有一个Context定义。Context中所有的功能都是通过方法来提供的,它提供了一些featureAbility中不存在的方法,相当于featureAbility的一个扩展和补全。
d.ts文件如下:
**d.ts声明**
https://gitee.com/openharmony/interface_sdk-js/blob/master/api/app/context.d.ts
应用的使用方式:
**示例**
```
javascript
import
featureAbility
from
'
@ohos.ability.featureAbility
'
...
...
@@ -47,12 +47,10 @@ export default {
## Stage模型和Context详细介绍
Stage模型有
7大
Context:
Stage模型有
如下几类
Context:
### application/Context
**概述**
application/Context类型的Context是基类Context,里面提供了应用的一些基础信息:resourceManager、applicationInfo、cacheDir、area等,还有应用的一些基本方法:createBundleContext等。
**d.ts声明**
...
...
@@ -61,8 +59,6 @@ export default {
### application/ApplicationContext
**概述**
application/ApplicationContext是应用级别的Context。和基类Context相比,应用级别的Context中提供了监听进程内组件的生命周期的能力,包括registerAbilityLifecycleCallback和unregisterAbilityLifecycleCallback两种方法。
**获取方法**
...
...
@@ -123,8 +119,6 @@ export default class MyAbilityStage extends AbilityStage {
### application/AbilityStageContext
**概述**
application/AbilityStageContext是Hap包级别的Context。和基类Context相比,Hap包级别的Context中多了HapModuleInfo和Configuration两个信息。
**获取方法**
...
...
@@ -137,7 +131,7 @@ export default class MyAbilityStage extends AbilityStage {
export
default
class
MyAbilityStage
extends
AbilityStage
{
onCreate
()
{
// 属性context就是AbilityStageContext类型的
console
.
log
(
'
HapModuleInfo is
'
+
context
.
currentHapModuleInfo
);
console
.
log
(
'
HapModuleInfo is
'
+
this
.
context
.
currentHapModuleInfo
);
}
}
```
...
...
@@ -148,8 +142,6 @@ export default class MyAbilityStage extends AbilityStage {
### application/AbilityContext
**概述**
Stage模型下,每个Ability中都包含了一个Context属性。
Ability功能主要是处理生命周期,其余操作Ability的方法(如startAbility、connectAbility等)都是在AbilityContext中实现的。
...
...
@@ -203,15 +195,17 @@ export default class MainAbility extends Ability {
### application/FormExtensionContext
卡片业务相关,点下面链接了解。
[
FormExtensionContext
](
/zh-cn/application-dev/reference/apis/js-apis-formextensioncontext.md
)
## 常见
问题
## 常见
错误使用方式
**通过globalThis去获取Context**
**
错误1:Stage模型
通过globalThis去获取Context**
**结论**
FA模型可以通过该方式去获取;Stage模型不可通过该方式去获取,要通过对应组件的属性去获取
。
Stage模型不能使用globalThis去获取Context
。
**原因**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录