Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a57af7f6
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看板
未验证
提交
a57af7f6
编写于
8月 26, 2023
作者:
O
openharmony_ci
提交者:
Gitee
8月 26, 2023
浏览文件
操作
浏览文件
下载
差异文件
!23125 【元能力】问题资料整改beta2
Merge pull request !23125 from wangkailong/cherry-pick-1693034411
上级
47cb75c3
d6e46376
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
3 addition
and
132 deletion
+3
-132
zh-cn/application-dev/application-models/application-component-configuration-stage.md
...ation-models/application-component-configuration-stage.md
+1
-1
zh-cn/application-dev/application-models/data-share-via-want.md
...application-dev/application-models/data-share-via-want.md
+1
-130
zh-cn/application-dev/application-models/page-mission-stack.md
.../application-dev/application-models/page-mission-stack.md
+1
-1
未找到文件。
zh-cn/application-dev/application-models/application-component-configuration-stage.md
浏览文件 @
a57af7f6
...
...
@@ -96,7 +96,7 @@
-
**Module支持的设备类型配置**
Module支持的设备类型需要在
[
module.json5配置文件
](
../quick-start/module-configuration-file.md
)
中配置
deviceTypes标签
,如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。
Module支持的设备类型需要在
[
module.json5配置文件
](
../quick-start/module-configuration-file.md
)
中配置
[
deviceTypes标签
](
../quick-start/module-configuration-file.md#devicetypes标签
)
,如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。
-
**Module权限配置**
...
...
zh-cn/application-dev/application-models/data-share-via-want.md
浏览文件 @
a57af7f6
# 应用间使用Want分享数据
在应用使用场景中,用户经常需要将应用内的数据(如文字、图片等)分享至其他应用以供进一步处理。以分享PDF文件为例,本文将介绍如何使用Want来实现应用间的数据分享。
数据分享需要使用两个UIAbility组件(分享方和被分享方)以及一个系统组件(应用分享框)。当分享方使用
`startAbility()`
方法发起数据分享时,系统会隐式匹配所有支持接收分享数据类型的应用,并将其展示给用户以供选择。用户选择应用后,系统将启动该应用来完成数据分享操作。
在本文中,我们将使用按钮的形式触发分享操作,但实际开发中并不限于此。本文主要介绍如何配置Want以实现数据分享的功能。
本文中涉及的两个Action为:
-
`ohos.want.action.select`
:用于启动应用分享框。
-
`ohos.want.action.sendData`
:用于发送单个数据记录。此Action用于将数据传递给分享方应用。
## 分享方
为了实现数据分享功能,分享方需要先拉起应用分享框并将要分享的数据传递给被分享方应用。因此,在分享方的代码中需要嵌套使用两层Want。在第一层中,使用隐式Want和
`ohos.want.action.select`
的action来启动应用分享框。在第二层Want中,声明要传递给被分享方应用的数据。
具体来说,可以将要分享的数据放在自定义字段
`parameters`
中,然后将包含
`ohos.want.action.sendData`
的action和
`parameters`
字段的Want作为第二层Want传递给应用分享框。被分享方应用可以通过获取参数
`parameters`
来获取分享的数据。
```
ts
import
common
from
'
@ohos.app.ability.common
'
;
let
fileType
=
'
application/pdf
'
;
let
fileName
=
'
TestFile.pdf
'
;
let
fileFd
=
-
1
;
// 需要获取被分享文件的FD
let
fileSize
;
// 需要获取被分享文件的大小
function
implicitStartAbility
()
{
let
context
=
getContext
(
this
)
as
common
.
UIAbilityContext
;
let
wantInfo
=
{
// This action is used to implicitly match the application selctor.
action
:
'
ohos.want.action.select
'
,
// This is the custom parameter in the first layer of want
// which is intended to add info to application selector.
parameters
:
{
// The MIME type of pdf
'
ability.picker.type
'
:
fileType
,
'
ability.picker.fileNames
'
:
[
fileName
],
'
ability.picker.fileSizes
'
:
[
fileSize
],
// This a nested want which will be directly send to the user selected application.
'
ability.want.params.INTENT
'
:
{
'
action
'
:
'
ohos.want.action.sendData
'
,
'
type
'
:
'
application/pdf
'
,
'
parameters
'
:
{
'
keyFd
'
:
{
'
type
'
:
'
FD
'
,
'
value
'
:
fileFd
}
}
}
}
}
context
.
startAbility
(
wantInfo
).
then
(()
=>
{
...
}).
catch
((
err
)
=>
{
...
})
}
```
> **说明:**
>
> 目前仅支持使用文件描述符(FD)格式分享数据。获取被分享文件的文件描述符和文件名,请参考[文件管理](../reference/apis/js-apis-file-fs.md)相关接口。
在以上代码中,使用了自定义字段
`parameters`
。其中,一级参数
`parameters`
中的字段
`ability.picker.*`
用于向应用选择器传递展示信息,具体字段如下:
-
`ability.picker.type`
:用于渲染相应的文件类型图标。
-
`ability.picker.fileNames`
:用于展示文件名。
-
`ability.picker.fileSizes`
:用于展示文件大小,单位为字节。
-
`ability.picker.fileNames`
和
`ability.picker.fileSizes`
是数组,两者一一对应。
效果示意如下图所示。
![](
figures/ability-startup-with-implicit-want2.png
)
## 被分享方
为了使分享的内容能够在被分享方识别,需要在被分享方UIAbility的
[
module.json5配置文件
](
../quick-start/module-configuration-file.md
)
中的skills标签进行相应的配置。其中,
`actions`
字段和
`uris`
内的
`type`
字段分别与分享方Want参数中
`ability.want.params.INTENT`
内的
`action`
和
`type`
字段进行匹配。
```
json
{
"module"
:
{
...
"abilities"
:
[
{
...
"skills"
:
[
{
...
"actions"
:
[
"action.system.home"
,
"ohos.want.action.sendData"
...
],
"uris"
:
[
{
"type"
:
"application/pdf"
},
]
}
]
}
]
}
}
```
当用户选择分享的应用后,嵌套在
`ability.want.params.INTENT`
字段中的Want参数将会传递给所选应用。被分享方的UIAbility被启动后,可以在其
[
`onCreate()`
](
../reference/apis/js-apis-app-ability-uiAbility.md#uiabilityoncreate
)
或者
[
`onNewWant()`
](
../reference/apis/js-apis-app-ability-uiAbility.md#uiabilityonnewwant
)
回调中获取传入的Want参数信息。
获取到的Want参数信息示例如下,可以使用被分享文件的文件描述符(FD)进行相应操作。
```
json
{
"deviceId"
:
""
,
"bundleName"
:
"com.example.myapplication"
,
"abilityName"
:
"EntryAbility"
,
"moduleName"
:
"entry"
,
"uri"
:
""
,
"type"
:
"application/pdf"
,
"flags"
:
0
,
"action"
:
"ohos.want.action.sendData"
,
"parameters"
:
{
"component.startup.newRules"
:
true
,
"keyFd"
:
{
"type"
:
"FD"
,
"value"
:
36
},
"mime-type"
:
"application/pdf"
,
"moduleName"
:
"entry"
,
"ohos.aafwk.param.callerPid"
:
3488
,
"ohos.aafwk.param.callerToken"
:
537379209
,
"ohos.aafwk.param.callerUid"
:
20010014
},
"entities"
:
[]
}
```
在应用使用场景中,用户经常需要将应用内的数据(如文字、图片等)分享至其他应用以供进一步处理。Want支持实现应用间的数据分享,具体指导请参见
[
应用文件分享
](
../file-management/share-app-file.md
)
。
zh-cn/application-dev/application-models/page-mission-stack.md
浏览文件 @
a57af7f6
...
...
@@ -47,5 +47,5 @@ MissionList任务链记录了任务之间的拉起关系,但是这个任务链
-
进入任务列表,把任务链中间某个任务清理掉。
!
[
mission-chain2
](
figures/mission-chain2.png
)
-
单实例UIAbility的任务,被不同的任务反复拉起(AbilityB为单例)。
-
单实例UIAbility的任务,被不同的任务
(包括Ability或桌面)
反复拉起(AbilityB为单例)。
!
[
mission-chain3
](
figures/mission-chain3.png
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录