# 鸿蒙场景化示例合集
**Repository Path**: wxrocky/demo-index
## Basic Information
- **Project Name**: 鸿蒙场景化示例合集
- **Description**: 【鸿蒙 Harmony Next 示例 代码】所有仓库Demo集合,便于站内查询。
涵盖场景化UI、场景化系统接口、媒体&图形、Web、创新场景、生态规则、行业最佳实践、NDK、三方框架&三方库等类目
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 20
- **Created**: 2025-03-25
- **Last Updated**: 2025-03-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 鸿蒙场景化示例合集
## 介绍
HarmonyOS NEXT场景化示例代码仓是一个基于场景化需求的代码仓,旨在为鸿蒙开发者提供贴近业务场景的代码实现方案。本代码仓涵盖了多种分类的场景化需求,如场景化UI、场景化系统接口、媒体&图形、Web、创新场景、生态规则、行业最佳实践、NDK、三方框架&三方库等类目,可以帮助开发者快速实现各种功能。每一个demo都是独立的工程,开发者克隆到本地即可一键启动,按需引入到业务代码中。
## 设计特点
- 开箱即用
- 贴近场景
## 一份简单的问卷反馈
亲爱的Harmony Next开发者,新年好!
为了帮助更多开发者使用示例Demo高效的协助开发,提高示例Demo的质量,开发更多贴合场景的示例Demo。
希望您在浏览或使用后抽空填写一份简单的问卷:page_with_curl:,我们将会收集您的宝贵意见进行优化:heart:
[:arrow_right: **点击此处,或扫描下方二维码填写问卷** ](https://wj.qq.com/s2/17783384/fe9e)
## 分类索引 —— 点击跳转分类
## 最近更新
:arrow_right: 点击 **示例名称** 跳转对应索引位置。
| 更新日期 | 示例名称 | 示例介绍 |
|------|------|------|
| 2025/2/21 | 密钥库指纹认证加解密案例 | 介绍了使用密钥管理服务与用户认证服务实现指纹识别后加解密的功能。 该场景多用于需要指纹识别或其他身份认证后加解密的安全场景。 |
| 2025/2/21 | 数据迁移 | 通过重写BackupExtensionAbility来完成自定义的应用数据备份和迁移的逻辑。 |
| 2025/2/21 | 基于未成年人模式的应用内容过滤 | 本实例介绍应用如何与未成年人模式进行关联,从而根据需求来限制未成年人能够浏览的应用内容和使用的应用功能。 |
| 2025/2/21 | 背景显隐虚化 | 创建一个可拖动卡片,当拖动卡片时,背景图片模糊;当松开卡片时,背景图片正常显示。 |
| 2025/2/19 | H5页面跳转微信小程序 | 基于web组件加载H5页面,通过拦截H5页面中基于微信协议的url链接,通过want和startAbility机制,由鸿蒙app拉起微信app,并跳转到对应的小程序链接,在微信app内拉起小程序。 |
| 2025/2/19 | H5页面转图片保存 | 基于web组件加载H5页面,通过enableWholeWebPageDrawing设置网页开启全量绘制能力,再使用webPageSnapshot获取网页全量绘制结果,最后使用SaveButton安全机制把图片资源保存到媒体库。 |
| 2025/2/19 | ControlSector-测量方向角以及夹角 | 示例通过扇形的变化,获取扇形方向角和夹角。 |
| 2025/2/19 | 不同时间周期(日、周、月、年)展示统计数据 | 用折线统计图的形式,以各种时间维度(日、周、月、年)的形式展示心率统计数据 |
| 2025/2/19 | 通用权限申请 | 本demo以打卡场景,申请位置权限为示例,介绍通用权限申请方式,并且将核心功能抽离成组件,一行代码直接调用,免去复杂的编码过程。 |
| 2025/2/19 | 登录页一多适配 | 通过响应式布局和自适应布局,实现了登陆页面所有组件的多设备适配。 |
| 2025/2/19 | DateTimePicker组件实现不循环滚动 | 本示例介绍DatePicker组件实现不循环滚动,支持选择日期和时间。|
| 2025/2/19 | 聊天类实时语音转文字 | 使用speechRecognizer实时语言转文字,并且根据光标位置插入文字,以及文本一键清空功能。 |
| 2025/2/19 | 碰一碰拉起元服务 | 通过NFC技术实现前台碰一碰拉起元服务。 |
## 场景化UI
### [Dialog - 弹窗类场景](https://gitee.com/scenario-samples/dialog)
本示例介绍以下五种常见的弹窗场景化案例。
- 应用启动时的隐私政策和用户协议弹窗
- 网络请求完成的结果提示弹窗
- 应用返回上一级页面的退出确认弹窗
- 个人信息填写的信息弹窗
- 应用使用过程中出现的付费类广告弹窗
### [Image - 图片操作类场景](https://gitee.com/scenario-samples/image)
本实例主要展示了图片应用场景相关demo。主要包括了图片预览、图片编辑美化、场景变化前后对比、图片切割九宫格、两张图片拼接、AI抠图、图片加水印等场景示例。
图片预览、图片编辑美化、场景变化前后对比
图片切割九宫格、两张图片拼接、AI抠图
图片加水印
### [微信支付示例](https://gitee.com/scenario-samples/wechat-pay-demo)
微信支付示例demo。
### [弹窗并跳转demo](https://gitee.com/scenario-samples/dialog-jump-retained)
应用首次进入时,会有弹窗请求安全隐私信息,用户可点击对应的隐藏协议跳转到对应隐藏协议的详情页面。从详情页面返回时,安全隐私的弹窗依然存在,用户可以继续进行授权/查看的操作。
### [应用之间分享和文件访问](https://gitee.com/scenario-samples/sandbox-share)
本示例主要展示了沙箱文件分享相关的功能,使用 @ohos.file.fileuri 、@ohos.file.fs、@ohos.ability.wantConstant、@ohos.application.Want 等接口,实现了获取文件uri、创建沙箱文件、提供want中操作want常数和解释Flags说、应用组件间的信息传递的功能。
### [加载](https://gitee.com/scenario-samples/load-icon)
本示例主要简单构建页面加载 loading 布局。
### [Scroll中点击图片移动到顶端](https://gitee.com/scenario-samples/move-to-top)
本示例基于绑定到List组件的Scorller以及Scoll中的ScrollTo实现类似购物软件中的一键回到顶部功能
### [应用导航设计](https://gitee.com/scenario-samples/navigation-router)
通过设计单独的路由模块和动态加载方法,解决一个Navigation组件下多har/hsp间路由跳转依赖耦合问题。
### [跳转三方/系统应用](https://gitee.com/scenario-samples/pull-other-app)
跳转短信、浏览器、设置、相机、拨号、应用市场等系统应用和已知bundlename、abilityname的三方应用。
### [沉浸式窗口显示图片](https://gitee.com/scenario-samples/immersive)
沉浸式布局,使窗口覆盖整个页面,上下不会保留状态栏和导航栏
### [使用canvas预览移动文字和图片水印](https://gitee.com/scenario-samples/move-watermark)
实现了一个预览水印保存图片的功能,其中有文字图片水印并且可移动。
### [图片计数&画笔](https://gitee.com/scenario-samples/image-count)
本项目基于Canvas组件进行图片计数、图片局部涂鸦遮盖、图片局部自动绘制圆圈路径功能实现
### [拨号盘](https://gitee.com/scenario-samples/call-phone)
本示例实现一个指定号码,拉起系统拨号页面
### [全局水印](https://gitee.com/scenario-samples/water-mark-view)
使用组件默认属性overlay实现组件级水印效果
### [背景显隐虚化](https://gitee.com/scenario-samples/background-blurring)
创建一个可拖动卡片,当拖动卡片时,背景图片模糊;当松开卡片时,背景图片正常显示。
### [附近地点,附近门店](https://gitee.com/scenario-samples/near-shop)
获取用户定位权限后,筛选用户定位附近门店信息,并支持地图查找地点来过滤筛选门店
### [附近的人](https://gitee.com/scenario-samples/neibor-people)
本示例介绍获取定位后筛选出地理位置在附近的人。
### [监听颜色模式切换](https://gitee.com/scenario-samples/dark-mode)
在应用初始化的时候,主动设置了colorMode之后。修改系统的深色模式后在onConfigurationUpdate(newConfig: Configuration)方法中无法监听到回调。使用setColorMode设置模式为COLOR_MODE_NOT_SET,应用就会跟随系统变化
### [单页面防截屏](https://gitee.com/scenario-samples/privacy)
实现对单个页面设置为隐私模式,使其可以禁止截屏,录屏及分享屏幕等行为。
### [数据迁移](https://gitee.com/scenario-samples/data-migration-demo)
通过重写BackupExtensionAbility来完成自定义的应用数据备份和迁移的逻辑。
### [方框式Menu](https://gitee.com/scenario-samples/menu)
当前menu组件都是条状的,有些需求是整块,宽度几乎为页面宽度的菜单,这里使用popup来自定义一个方框的菜单。
### [自定义半屏弹窗](https://gitee.com/scenario-samples/animated-scene)
本示例展示了包含设备状态管理场景、自定义半屏弹窗选项、页面切换动画的页面切换动画demo。
### [申请弹窗通知权限](https://gitee.com/scenario-samples/ma-la-song-bao-ming)
申请弹窗通知权限
### [实现可滑动面板](https://gitee.com/scenario-samples/bind-sheet)
本案例展示了一个可滑动面板的体验,轻量的内容展示窗口,方便在不同尺寸中切换。
### [上下&左右滑动列表](https://gitee.com/scenario-samples/slide-list)
实现了上下左右滑动列表的效果
### [监听设备网络状态](https://gitee.com/scenario-samples/net-status-listen)
监听设备网络状态
### [Video刻度进度条组件](https://gitee.com/scenario-samples/video-progress-bar)
视频刻度进度条demo(video progress bar)。
### [自定义滑块、进度条](https://gitee.com/scenario-samples/custom-slider)
提供一个自定义滑块、自定义进度条的Demo,可实现最大值,最小值,并动态显示当前值。
### [环形可拖拽进度条](https://gitee.com/scenario-samples/canvas-circle)
基于CanvasRenderingContext2D和三角函数实现了一个环形的可拖拽进度条
### [日期时间不循环滚动](https://gitee.com/scenario-samples/date-picker-no-cycle)
本示例介绍DatePicker组件实现不循环滚动,支持选择日期和时间。
### [聊天页面图片视频预览](https://gitee.com/scenario-samples/image-video-preview)
图片视频预览功能,基于组合手势实现双击缩放,双指缩放,拖动查看,下载过程。
### [图片预览](https://gitee.com/scenario-samples/image-preview)
实现图片预览功能,基于组合手势实现双击缩放,双指缩放,拖动查看
### [安全验证滑块](https://gitee.com/scenario-samples/security-verification-slider)
实现一个安全验证,将滑块从左滑动到右的效果
### [相机、位置、运动权限的获取](https://gitee.com/scenario-samples/permission-request-tes)
一个应用需要获取3种不同的权限;每个权限需要用户确认后才开启,没有经过确认的权限不能执行成功。
### [微信图片九宫格demo](https://gitee.com/scenario-samples/weixin9gongge)
本示例基于Grid 网格容器实现图片展示,根据九宫格格式最多展示九张图片,可以点击查看详情等功能。
### [带引导页的webDemo](https://gitee.com/scenario-samples/web-demo)
使用ArkTS编写的带引导页的webDemo实现。
### [图片滤镜](https://gitee.com/scenario-samples/image-filter)
本项目基于effectKit进行图片滤镜转换功能实现。
### [会议发布页](https://gitee.com/scenario-samples/conference-release)
使用ArkTS编写的会议发布页DEMO。
### [List-时间轴(横轴)](https://gitee.com/scenario-samples/list-timeline)
List-时间轴(横轴)
### [中间突起Tab](https://gitee.com/scenario-samples/tab-bar)
本示例介绍中间凸起的底部导航实现。
### [图片添加贴纸](https://gitee.com/scenario-samples/image-move)
本示例介绍图片添加贴图的场景化案例。
### [tabs左对齐](https://gitee.com/scenario-samples/tabs-align-left)
示例实现Tabs的左对齐效果。
### [投票结果展示](https://gitee.com/scenario-samples/vote-result-display)
Progress-Linear(线性样式)-投票结果展示。
### [主动刷新卡片](https://gitee.com/scenario-samples/card-refresh-manual)
主动刷新卡片
### [【image】【属性resizable】 【局部拉伸】demo](https://gitee.com/scenario-samples/image-resizable-demo)
【image】【属性resizable】 【局部拉伸】demo。
### [压缩解压缩以及语音识别](https://gitee.com/scenario-samples/search-page_-speech-recognizer)
本示例介绍语音识别即语音转文字功能的实现。
### [tab页+子页](https://gitee.com/scenario-samples/harmony-os_-demo-yong-pai-dev)
子页与tab页互相联动,tab页为界面上方横条,子页变化引起tab页变化,tab页变化带动子页变化。
### [轮播图滑动时图片动效](https://gitee.com/scenario-samples/swiper-demo)
轮播图滑动时图片逐步变大,其他图片逐步变小。
### [导航列表](https://gitee.com/scenario-samples/navigation-list)
本示例介绍实现由icon+Title+Action组合而成的导航列表卡片的功能。
### [视频添加水印](https://gitee.com/scenario-samples/watermark-for-video)
视频添加水印。
### [组件间通信](https://gitee.com/scenario-samples/communication)
本Demo主要讲解组件间通信方式。
### [计算器Demo](https://gitee.com/scenario-samples/calculator)
实现了计算器计算功能的demo。
### [单个页面设置隐私窗口](https://gitee.com/scenario-samples/privacy-entry-demo)
该Demo演示如何设置单个页面为隐私页面,解决在设置隐私后,所有页面都不能截图的问题。
### [关于页](https://gitee.com/scenario-samples/about-page-demo)
告知用户关于应用的一些基本信息,例如:官网、开发者联盟、微信公众号等。
### [Swiper](https://gitee.com/scenario-samples/swiper)
这是一个卡片轮播效果demo。
### [阅读器翻页效果](https://gitee.com/scenario-samples/page-flip)
本示例基于显式动画、List组件、drawing接口实现了阅读器上下翻页、左右覆盖翻页、仿真翻页等效果。
### [联系人页面](https://gitee.com/scenario-samples/contact-page)
这是一个联系人列表demo,根据联系的姓名首字母进行排序,动态获取所有联系人的首字母,在页面右侧生成字母导航,支持快读定位到某字母行。
### [自定义日历实现日程页](https://gitee.com/scenario-samples/calendar-demo)
本示例实践通过组件实现日历页面。
### [个人中心Demo](https://gitee.com/scenario-samples/personal-center)
个人中心demo
### [隐私弹窗demo](https://gitee.com/scenario-samples/policy-and-privacy)
隐私弹窗demo
### [基于Navigation实现的自定义弹窗](https://gitee.com/scenario-samples/global-popup)
自定义弹窗是应用开发需要实现的基础功能,包括但不限于鸿蒙开发者文档中定义的模态、半模态、Toast等形式,封装一个好用且和UI组件解耦的弹窗组件是开发者的高频诉求。
### [自定义键盘](https://gitee.com/scenario-samples/custom-keyboard)
本实例为自定义键盘,有三种模式:数字输入模式、英文键盘和中文键盘。
### [窗口与组件横竖屏切换](https://gitee.com/scenario-samples/orientation-switch)
本示例通过 setPreferredOrientation 方法来控制窗口的横竖屏显示,通过设置组件的 rotate 属性来控制组件的横竖屏显示。
### [不依赖entry的弹窗Demo](https://gitee.com/scenario-samples/customiz-dialog-without-entry)
在一个非@Entry的类中创建一个CustomDialogController弹窗。
### [正则匹配高亮关键字Demo](https://gitee.com/scenario-samples/regular-highlight)
提供了使用正则表达式筛出高亮的字符并高亮。
### [基础组件使用Demo](https://gitee.com/scenario-samples/common-components)
Demo中演示了一些常用基础组件的使用方法。
### [吸顶效果demo](https://gitee.com/scenario-samples/scroll-ceiling)
此Demo通过设置nestedScroll属性,实现Tab组件的TabBar和List组件吸顶效果。
### [Gauge实现渐变前景色效果](https://gitee.com/scenario-samples/gauge-demo)
利用Gauge实现渐变前景色效果。
### [主窗口和子窗口使用Demo](https://gitee.com/scenario-samples/master-and-sub-window-use)
本Demo介绍主窗口与子窗口的使用。。
### [地址选择列表](https://gitee.com/scenario-samples/select-region)
该Demo实现了地址选择列表。
### [Tab动态滑动切换](https://gitee.com/scenario-samples/tab-dyn-change)
Demo中演示了点击、滑动都可实现切换动效,包含文字切换。
### [网格功能区卡片](https://gitee.com/scenario-samples/grid-ribbon)
利用Grid布局实现网格功能区卡片。
### [组件裁剪和不规则圆角组件](https://gitee.com/scenario-samples/rounded-corner-component)
1、对Image组件设置clipShape属性,并通过PathShape传入不同的裁剪命令,将Image组件裁剪为不同形状。
2、使用Path组件,通过设置commands属性,并传入不同的绘制命令,绘制出带圆角的不同形状的组件。
### [List横向滑动容器高度自适应](https://gitee.com/scenario-samples/auto-height-list)
通过List模拟美团首页菜单横向滚动高度自适应效果。
### [日期下拉选择](https://gitee.com/scenario-samples/dropdown-selection)
利用网格布局实现下拉筛选框。
### [跑马灯效果](https://gitee.com/scenario-samples/marquee-effect)
通过Marquee组件用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动,不超过时不滚动。
### [ControlSector-测量方向角以及夹角](https://gitee.com/scenario-samples/measure-the-angle)
示例通过扇形的变化,获取扇形方向角和夹角。
### [不同时间周期(日、周、月、年)展示统计数据](https://gitee.com/scenario-samples/period-chart)
用折线统计图的形式,以各种时间维度(日、周、月、年)的形式展示心率统计数据
### [登录页一多适配](https://gitee.com/scenario-samples/multiple-login-page-adapt)
本Demo通过响应式布局和自适应布局,简单实现了一个登陆页面所有组件的多设备适配
保证登录界面在不同的设备上能够根据设备大小、分辨率来展示不同样式的界面。
### [DateTimePicker组件实现不循环滚动](https://gitee.com/scenario-samples/data-picker-no-cycle)
本示例介绍DatePicker组件实现不循环滚动,支持选择日期和时间。
· 支持嵌入页面形式展示
· 支持弹窗形式展示
## 场景化系统接口
### [File - 文件操作类场景](https://gitee.com/scenario-samples/file)
本demo按照文件上传、文件下载、文件预览、文件读取保存、文件压缩解压、文件拷贝6个分类进行场景化子demo构造展示,如文件上传展示中,模拟简易聊天场景,此时发送文件是个正常诉求,基于此场景完成相关元能力实现及展示。
文件上传、文件下载、文件预览
文件读取保存、文件压缩解压、文件拷贝
### [Thread Demo](https://gitee.com/scenario-samples/thread)
实现鸿蒙上ets和cpp层交互 加密和下载
### [电话、短信能力](https://gitee.com/scenario-samples/message)
1. 可以通过call.makeCall来拉起拨号界面。并在makeCall函数的第一个参数中指定电话号码,该功能代码在2in1设备中不可用。
2. 可以通过显式指定bundleName为com.ohos.mms、abilityName为com.ohos.mms.MainAbility来拉起联系人应用,其中contactsName为用户名,telephone为电话号码。
### [基于ImageKnife的图片处理](https://gitee.com/scenario-samples/image-knife)
基于OpenHarmony三方库 [ImageKnife] 进行场景开发使用: 支持不同类型的本地与网络图片展示。 支持磁拍照展示与图库照片选择展示。 支持进行图片变换: 支持图像像素源图片变换效果。
### [频道选择UI,长按拖动、关闭等动画效果的实现](https://gitee.com/scenario-samples/my-application-xin-lang)
点击右上角的编辑按钮后,可以拖动item,并修改其顺序。
### [BT_BLE连接](https://gitee.com/scenario-samples/bluetooth-ble)
本示例展示了
BLE服务端的创建
服务端对客户端操作的响应和监听
BLE客户端的创建
客户端对特征值的读写。
### [基于关系型数据库的数据持久化](https://gitee.com/scenario-samples/data-management)
基于关系型数据库的数据持久化。
### [密钥库指纹认证加解密案例](https://gitee.com/scenario-samples/huks-user-auth-access)
介绍了使用密钥管理服务与用户认证服务实现指纹识别后加解密的功能。 该场景多用于需要指纹识别或其他身份认证后加解密的安全场景。
### [后台播放在线音频](https://gitee.com/scenario-samples/long-task)
本工程通过Background Tasks Kit实现应用退出后台后继续播放网络音频。
### [国密SM4加解密demo](https://gitee.com/scenario-samples/sm4)
国密算法的加解密:包含了SM2、SM4的加解密示例。
### [NFC读卡](https://gitee.com/scenario-samples/nfcread-tag)
使用系统提供的NFC能力,简单实现了应用前台读卡效果。
### [运动校园](https://gitee.com/scenario-samples/jsbridge-demo)
本工程实现了简单的JSBridge,使H5和鸿蒙两侧可以互相调用对方的方法。
### [获取当前地理位置和定位](https://gitee.com/scenario-samples/get-current-location)
通过位置服务获取当前地理位置及经纬度。
### [用户认证、指纹认证、锁屏密码认证](https://gitee.com/scenario-samples/user-auth-demo)
本示例介绍的是拉起设备的认证能力。比如拉起锁屏密码/指纹/人脸认证能力。
### [加解密-RSA-使用已有公私钥](https://gitee.com/scenario-samples/encrypt-message)
提供通用的RSA加解密Demo。
### [密钥安卓格式和鸿蒙格式的转换](https://gitee.com/scenario-samples/crypto-demo)
密钥安卓格式和鸿蒙格式的转换。
### [国密SM2加解密demo](https://gitee.com/scenario-samples/sm2)
本示例介绍的SM2加解密的实现方法。
### [设备认证管理](https://gitee.com/scenario-samples/my-application_-distributed-device-manager)
使用了鸿蒙ohos.distributedDeviceManager模块,实现设备间相互认证的能力。
### [数据库备份恢复](https://gitee.com/scenario-samples/database-demo)
数据库备份恢复。
### [应用内转跳到系统短信发送界面](https://gitee.com/scenario-samples/jump-send-message)
从应用内跳转到短信发送界面,并且携带收件人和发送内容。
### [日历开放能力-一键查看](https://gitee.com/scenario-samples/course-reminder-app-demo)
集成日历kit将选课提醒加入日程,使用日历一键查看能力拉起目标页面。
### [蓝牙SPP聊天室](https://gitee.com/scenario-samples/bluetooth-socket)
本示例展示了蓝牙socket聊天通话,使用2部手机进行运行。
### [进程内emitter请求封装](https://gitee.com/scenario-samples/emitter)
本示例使用'@ohos.events.emitter'模块,实现了在同一进程不同线程间通信的能力,包括单次订阅事件、取消订阅事件,以及发送信息能力。
### [rcp get请求](https://gitee.com/scenario-samples/rcp-demo)
使用@hms.collaboration.rcp接口提供的远程通信能力,支持http会话功能,应用程序可通过HTTP发起数据请求。常见的HTTP方法包括GET、POST、HEAD、PUT、DELETE、PATCH、OPTIONS。本示例实现get请求发送并接收网站的信息。
### [彻底清除应用缓存](https://gitee.com/scenario-samples/clean-cache-demo)
清理应用中缓存的Demo。
### [多模输入服务](https://gitee.com/scenario-samples/input-method)
包含获取输入设备,监听设备热插拔,获取鼠标样式,设置鼠标样式,显示/隐藏鼠标。
### [H5页面跳转微信小程序](https://gitee.com/scenario-samples/web-jump-miniprogram)
本示例基于web组件加载H5页面,通过拦截H5页面中基于微信协议的url链接,通过want和startAbility机制,由鸿蒙app拉起微信app,并跳转到对应的小程序链接,在微信app内拉起小程序。
### [H5页面转图片保存](https://gitee.com/scenario-samples/h5-to-photo)
本示例基于web组件加载H5页面,通过enableWholeWebPageDrawing设置网页开启全量绘制能力,再使用webPageSnapshot获取网页全量绘制结果,最后使用SaveButton安全机制把图片资源保存到媒体库。
### [通用权限申请](https://gitee.com/scenario-samples/perms-demo)
本demo以打卡场景,申请位置权限为示例,介绍通用权限申请方式,并且将核心功能抽离成组件,一行代码直接调用,免去复杂的编码过程。
## 媒体&图形
### [自定义相机](https://gitee.com/scenario-samples/camera)
自定义相机拍照+图库文件选择/保存。
### [录制视频demo](https://gitee.com/scenario-samples/camera-kit-avrecorder)
实现了使用手机摄像头进行视频录制、预览的功能。
### [YUV数据渲染](https://gitee.com/scenario-samples/yuv-demo)
OpenGLES渲染yuv数据。
### [音视频录制demo](https://gitee.com/scenario-samples/avrecorder-demo)
使用AVRecorder实现音视频录制。
### [短视频播放demo](https://gitee.com/scenario-samples/short-avplayer-demo)
使用Swiper+AVPlayer实现短视频播放。
### [相机图片放大](https://gitee.com/scenario-samples/scale-image)
实现了图片转成pixelmap格式并移动和放大缩小
### [相册选择图片压缩并转成Base64格式](https://gitee.com/scenario-samples/select-and-compress-pictures)
从相册中批量选择图片并通过imagePackerApi进行压缩,压缩后转成base64格式,可用于arkui或则H5中进行图片展示。
### [音视频播放demo](https://gitee.com/scenario-samples/avplayer-demo)
使用AVPlayer实现音视频播放。
### [聊天类实时语音转文字](https://gitee.com/scenario-samples/live-speech-to-text-conversion)
本示例介绍如何使用speechRecognizer实时语言转文字,并且根据光标位置插入文字,以及文本一键清空功能。
## Web
### [Web - 网页交互类场景](https://gitee.com/scenario-samples/web)
本示例共介绍了五种Web相关的使用场景。为开发者提供了Web页面请求拦截加载、PDF预览以及下载、Web页面与应用侧交互等功能,方便开发者开发类似场景。
Web页面请求拦截加载、PDF预览以及下载、Web页面实名认证
Web页面手机充值、Web页面长按菜单
### [Web相关场景Demo](https://gitee.com/scenario-samples/ark-web-demo)
本示例是一个Webview相关场景的示例,搭建了不同的页面向用户提供不同Webview使用的场景。 用于在应用程序中显示Web页面内容,为开发者提供页面加载、页面交互、页面调试等能力。
### [Web组件预览PDF文件](https://gitee.com/scenario-samples/loading-pdf-excel-word)
本示例通过Web组件实现文件预览,支持pdf, docx, xlsx格式
### [Web组件调用相机拍照](https://gitee.com/scenario-samples/webdemos)
web拍照与录音
### [Web显示缩放](https://gitee.com/scenario-samples/web-adaptation)
Web显示缩放
### [Web组件预览PDF文件](https://gitee.com/scenario-samples/web-pdf-viewer)
本示例通过Web组件实现文件预览,支持pdf, docx, xlsx格式。
## 创新场景
### [免密登录](https://gitee.com/scenario-samples/remember-pwd)
### [系统分享](https://gitee.com/scenario-samples/share)
手机使用系统分享API,分享图片或文字,这里重点展示分享图片的效果,参考[手机应用发起系统分享](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/share-mobilephone-app-share-V5?catalogVersion=V5)
### [智能图片picker](https://gitee.com/scenario-samples/smartphoto-picker-demo)
本示例展示智能图片picker使用方法
### [基于未成年人模式的应用内容过滤](https://gitee.com/scenario-samples/new-minors-protection)
本实例介绍应用如何与未成年人模式进行关联,从而根据需求来限制未成年人能够浏览的应用内容和使用的应用功能。本实例主要使用系统自带的未成年人模式来实现,同时在应用内也设置了一个简单的自带未成年人模式,在系统不支持或暂无法使用未成年人模式 的情况下使用,一般情况下建议使用系统自带的未成年人模式
## 生态规则
### [设置禁止截屏的隐私模式](https://gitee.com/scenario-samples/privacy-window)
本文主要讲如何设置页面隐私模式。在我们需要将手机的部分窗口保密时,就需要设置成禁止截屏或者录屏的模式。系统层面提供了这一能力。
### [基于设置应用的应用权限、通知设置跳转](https://gitee.com/scenario-samples/to-settings)
场景描述:
引导用户跳转到系统设置页进行权限,通知的相关设置,类似android和iOS应用中常见的应用内跳转到设置进行通知开启或权限设置的操作。
应用经常会遇到如下的业务诉求:
场景一:如果应用首次拒绝了消息通知,应用希望能够引导用户拉起设置应用设置允许通知,用来接收应用内的推送消息;并且在设置完后返回页面可以监听到修改后的状态。
场景二:当用户使用一些需要用户授权的api时(如访问获取联系人信息),若用户首次拒绝授权,则需要引导用户到权限设置页面能够主动进行应用权限的修改。
场景三:支持打开/关闭系统功能如Wi-Fi、NFC、移动网络、蓝牙等。
## 行业最佳实践
### [服务端证书校验](https://gitee.com/scenario-samples/socket-tls)
该示例是一个连接网络的Demo,通过 socket 获取远端证书,在网络通信中,利用套接字(socket)技术来获取与之建立连接的远端服务器的数字证书。
### [餐饮美食Demo](https://gitee.com/scenario-samples/food)
餐饮美食Demo,包含外卖、店铺地图展示、店铺选择、商品列表,下单;扫码选择店铺。
### [招聘求职类](https://gitee.com/scenario-samples/job)
鸿蒙生态招聘类元服务demo
### [时钟demo](https://gitee.com/scenario-samples/world-clock)
通过app.json5中bundleName里的城市名称,匹配对应城市时区,并把对应时间显示在界面
### [消息页、服务切换UI Demo](https://gitee.com/scenario-samples/msg-uidemo)
消息页、服务切换UI Demo
### [手机银行示例](https://gitee.com/scenario-samples/bankdemo)
手机银行类应用示例,实现了TAB页面的基本布局、动效等。
### [通用模版Demo](https://gitee.com/scenario-samples/generic-template-demo)
对标金融类产品,以此开发的行业通用Demo,实现基础的注册、登录、Web嵌入,一二级页面布局参考等,工程以feature方式进行模块化设计。
### [教师教育应用Demo](https://gitee.com/scenario-samples/teacher)
教师教育应用demo
### [旅游Demo](https://gitee.com/scenario-samples/traveldemo)
地图展示 用户社区评论页demo
### [书籍类应用demo](https://gitee.com/scenario-samples/book)
书籍阅读类应用demo
### [蓝牙应用Demo](https://gitee.com/scenario-samples/blue-tooth)
涉及蓝牙BLE连接 体重、趋势图、柱状图、指标组件 传感器计步能力。
### [预约、视频通话类demo](https://gitee.com/scenario-samples/meet)
预约、视频通话类demo
### [应用消息列表页demo](https://gitee.com/scenario-samples/message-list)
应用消息列表页UI示例Demo
### [卡类应用demo](https://gitee.com/scenario-samples/card-demo)
实现了卡应用的基本框架,包括: 1、登录/首页 2、二维码 3、商城 4、我的/设置 等常见tab页的一级页面,方便同类型应用快速启动开发。
### [教育APP示例](https://gitee.com/scenario-samples/score)
构建了一个教育demo,包括我的、提分、首页。
### [鸿蒙化权限二次申请](https://gitee.com/scenario-samples/request-permission)
鸿蒙化权限二次申请。
## NDK
### [录屏](https://gitee.com/scenario-samples/avscreen-capture-demo)
使用C侧AVScreenCapture模块API完成视频录制到沙箱目录
### [openGL渲染](https://gitee.com/scenario-samples/gimbal-pro_-open-gl)
相机流OpenGL后处理后通过Xcomponent送显
### [JSVM demo](https://gitee.com/scenario-samples/jsvm)
通过JSVM,可以在应用运行期间直接执行一段动态加载的JS代码。
### [PCM音频编码为AMR示例](https://gitee.com/scenario-samples/audio-encoding)
通过AudioCapture录制PCM码流,并编码为amr格式,最终写入文件。
## 三方框架&三方库
### [Flutter闪屏页Demo](https://gitee.com/scenario-samples/splashscreen)
在Flutter工程中设置闪屏页
### [Flutter嵌入地图](https://gitee.com/scenario-samples/nativemap/blob/master/README.md)
### [uni-app通过uts插件显示花瓣地图](https://gitee.com/scenario-samples/petal-maps)
uniapp通过uts插件拉起华为花瓣地图。
### [阿里OSS客户端上传demo](https://gitee.com/scenario-samples/ali-ossdemo)
阿里OSS客户端上传demo
### [基于声网SDK的简易直播](https://gitee.com/scenario-samples/rtc-live-demo)
基于声网SDK实现的简易直播Demo。
## 其他
### [碰一碰拉起元服务(前台)](https://gitee.com/scenario-samples/foreground-tap-to-launch-meta-service)
通过NFC技术实现前台碰一碰拉起元服务。打开手机NFC功能,打开应用使其页面位于前台,此时触碰NFC标签,可获取部分标签信息并展示在首页,并通过Deep Linking拉起本地的元服务。
### [碰一碰拉起元服务(后台)](https://gitee.com/scenario-samples/background-tap-to-launch-meta-service)
通过NFC技术实现后台碰一碰拉起元服务。打开手机NFC功能,触碰NFC标签,点击系统提示框即可后台拉起元服务,并获取部分标签信息展示在首页。