介绍
自定义分享主要是发送方将文本,链接,图片三种类型分享给三方应用,同时能够在三方应用中展示。本示例使用数据请求 实现网络资源的获取,使用屏幕截屏 实现屏幕的截取,使用文件管理 实现对文件,文件目录的管理,使用媒体库管理 获取截取的图片,使用弹窗 进行信息的提示。
效果预览
使用说明:
1.启动Share应用,首页展示分享跳转页面,点击分享按钮出现自定义分享弹窗(三方APP的)。
2.点击分享文本+链接,选择"Chat"图标,会拉起三方应用Chat ,此时选择聊天列表 中任意的朋友进行分享。
3.点击生成海报,此时第一层弹窗消失并出现新的弹窗,点击截图并分享,会出现小提示"截图成功,分享加载中…" ,稍后会拉起三方应用Chat ,此时选择聊天列表 中任意的朋友进行分享。
4.安装entry以及textShare两个module的hap包 ,点击分享文本+链接,选择"文本分享"图标,会拉起应用文本分享 ,此时选择"留在文本分享"可以进入文本页面 ,若选择"返回",则会回到Share应用主页面。
5.安装entry以及textEdit两个module的hap包 ,点击分享文本+链接,选择"文本编辑"图标,会拉起应用文本编辑 ,此时选择"留在文本编辑"可以进入文本编辑页面 ,若选择"返回",则会回到Share应用主页面。
工程目录
entry/src/main/ets/
|---Application
| |---MyAbilityStage.ets
|---MainAbility
| |---MainAbility.ts
|---model
| |---Logger.ts // 日志工具
|---pages
| |---Index.ets // 首页
textShare/src/main/ets/
├──model
| └──Logger.ts
├──pages
| ├──Index.ets // TextReceiveAbility页面
| ├──TemplateBuilder.ets // 自定义组件页面
| └──ShareExtenIndex.ets // ShareExtension页面
├──textreceiveability
| └──TextReceiveAbility.ts // 文本分享主页面
├──shareextensionability
| └──ShareExtAbility.ts
textEdit/src/main/ets/
├──editability
| └──EditTextAbility.ts // 文本编辑主页面
├──model
| └──Logger.ts
├──pages
| ├──Index.ets // EditTextAbility页面
| ├──TemplateBuilder.ets // 自定义组件页面
| └──ShareExtenIndex.ets // ShareExtension页面
└──shareextensionability└──ShareExtAbility.ts
具体实现
- 本示例分为链接分享,应用内文件分享,其它应用分享三个模块:
- 文本+链接分享模块
- ButtonDialogBuilder方法展示自定义分享弹窗,@ohos.abilityAccessCtrl接口获取访问控制权限,@ohos.net.http接口获取网络资源。
- 应用内文件分享模块
- 使用弹窗,屏幕截屏(截取屏幕),文件管理(管理文件和文件目录)和媒体库管理(获取截取的图片)接口进行图片、链接,视频的分享
- 其他应用分享模块:
- 使用弹窗,屏幕截屏(截取屏幕),文件管理(管理文件和文件目录)和媒体库管理(获取截取的图片)API,把图片,链接,文件在其他应用内分享
- 本示例还包含文本分享应用及文本编辑应用:
- 在Index.ets中加载TemplateBuilder自定义组件并显示分享信息。
- 在加载Index页面中,如果是被分享方拉起,则加载TemplateBuilder自定义组件。若不是被分享拉起,则显示Ability设置内容。
- TemplateBuilder组件内容封装在TemplateBuilder.ets中
- 在TemplateBuilder组件中包含ShareExtAbility组件、“返回Share”和“留在文本分享/留在文本编辑”按钮,可选择返回Share应用或留在当前(文本分享/文本编辑)应用。
相关权限
允许应用截取屏幕图像:ohos.permission.CAPTURE_SCREEN
允许使用Internet网络:ohos.permission.INTERNET
允许应用访问用户媒体文件中的地理位置信息:ohos.permission.MEDIA_LOCATION
允许应用读取用户外部存储中的媒体文件信息:ohos.permission.READ_MEDIA
允许应用读写用户外部存储中的媒体文件信息:ohos.permission.WRITE_MEDIA
依赖
依赖于Chat 应用,来作为接收方。
entry中测试Share.test.ets需要依赖textShare以及textEdit,需要编译两个feature module的hap包,并与entry应用hap包及测试hap包一同签名并安装。
约束与限制
1.本示例仅支持标准系统上运行,支持设备:RK3568。
2.本示例为Stage模型,支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0 Release)
3.本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行
4.本示例使用的screenshot API属于SystemAPI,需要使用Full SDK 手动从镜像站点获取,并在DevEco Studio中替换。
5.本示例涉及相关权限为system_core级别, 需要手动配置高级别的权限签名。
6.本示例类型为系统应用,需要手动配置对应级别的应用类型(“app-feature”: “hos_system_app”)。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/BasicFeature/ApplicationModels/CustomShare/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程
鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128
鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
一、入门必看
1.应用开发导读(ArkTS)
2………
二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…
三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.基本概念
2.构建第一个ArkTS应用
3…
四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3