| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 06-May-2025 | - | 35 | 32 | ||
| feature/authorizedControl/ | 06-May-2025 | - | 4,742 | 4,495 | ||
| hvigor/ | 06-May-2025 | - | 19 | 19 | ||
| product/phone/entry/ | 06-May-2025 | - | 1,380 | 1,202 | ||
| screenshots/devices/ | 06-May-2025 | - | ||||
| .gitignore | D | 06-May-2025 | 129 | 11 | 11 | |
| README_zh.md | D | 06-May-2025 | 7.4 KiB | 113 | 88 | |
| build-profile.json5 | D | 06-May-2025 | 1.3 KiB | 55 | 54 | |
| hvigorfile.ts | D | 06-May-2025 | 864 | 22 | 5 | |
| hvigorw | D | 06-May-2025 | 2.1 KiB | 63 | 28 | |
| hvigorw.bat | D | 06-May-2025 | 2.2 KiB | 80 | 60 | |
| oh-package.json5 | D | 06-May-2025 | 874 | 27 | 26 | |
| ohosTest.md | D | 06-May-2025 | 1.1 KiB | 12 | 8 |
README_zh.md
1# 葡萄广场 2 3### 介绍 4 5本示例是一个社交分享类APP,搭建了不同的页面向用户提供获取社交信息等能力。为了减少频繁权限弹窗对用户的干扰,同时提供更小的授权范围,使用了[安全控件](https://gitee.com/openharmony/applications_app_samples/tree/master/code/SystemFeature/Security/AuthorizedButton)做临时授权场景。当用户实际点击了某种类型的安全控件时,会由系统弹出相关通知弹窗,并对应用进行相应的临时授权。 6 7### 效果预览 8 9| Home | Location | Paste | 10|:--------------------------------------:|:----------------------------------------------:|:-----------------------------------------------------------:| 11|  |  |  | 12| Save | Notication | SameCrityPage | 13|  |  |  | 14 15使用说明: 16 171. 启动应用进入广告动画界面,动画结束后进入应用,整个应用分为三个部分"主页"、"发现"、"我的",可以通过底部导航进行页面间的切换。 182. "主页"可以查看各个用户发布的动态,点击任一图文可以进入动态详情界面。 193. "动态详情页"主要包括上下两部分,上部分主要展示用户发布的动态,可以包括文字、图片、视频,长按图片或视频会浮出"保存"按钮,点击后会弹出授权通知弹窗,点击"知道了",可以通过安全控件中的保存控件将图片或者视频保存到图库当中。 204. "动态详情页"下部分展示用户的评论情况,点击底部"评论"按钮,在文本框中输入评论,长按文本框出现"复制 粘贴"按钮,点击"复制"按钮可以将选定信息写入剪贴板,点击"粘贴"按钮,可以通过安全控件中的粘贴控件从剪贴板中读取信息。 215. "发现"页面,点击"同城"按钮可以通过安全控件中的位置控件获取当前定位,点击后会弹出授权通知弹窗,点击"知道了",会跳转到"同城榜"界面并显示当前定位城市。点击"发现"页面中的"全部"按钮可以跳转到"热搜榜"界面。 226. "热搜榜"、"我的"界面当前是静态页面。 23 24### 工程目录 25 26``` 27features/authorizedControl/src/main/ets // 安全控件类HAR共享包 28|---/authorizedControl 29| |---LocationControl.ets // 位置控件 30| |---PasteControl.ets // 粘贴控件 31| |---SaveControl.ets // 保存控件 32|---/commonComponent 33| |---TrendsItem.ets // 单一动态组件 34|---/model 35| |---BaseMsg.ets // 数据类型 36| |---BasicDataSource.ets // 懒加载基本数据资源 37| |---DataFactory.ets // 构造数据方法 38| |---MockData.ets // 模拟数据 39| |---TrendsDataSource.ets // 主页动态数据资源类 40|---/utils 41| |---Constants.ets // 封装常量 42| |---Logger.ets // 封装日志类 43|---/view 44| |---CommentDetailView.ets // 发现详情模块 45| |---MainView.ets // 主页模块 46| |---MineView.ets // 个人显示模块 47| |---SameCityListView.ets // 同城显示模块 48| |---SquareView.ets // 发现模块 49| |---TrendsDetailView.ets // 动态详情模块 50products/phone/entry/src/main/ets 51|---/entryability 52| |---EntryAbility.ts // Ability模块 53|---/pages 54| |---AdvertisingPage.ets // 广告页面 55| |---CommentDetailPage.ets // 动态详情页面 56| |---HomePage.ets // 主页 57| |---SameCityListPage.ets // 同城页面 58|---/utils 59| |---Constants.ets // 常量 60| |---Logger.ets // 封装日志类 61| |---ResourceUtils.ets // 资源转换函数 62``` 63 64### 具体实现 65#### 安全控件的使用: 66* 本示例安全控件的使用主要从图片和视频的保存、文本的复制和粘贴以及位置信息的获取三个模块体现: 67 * 图片和视频的保存 68 69 * 使用SaveButton控件保存图片或者视频到图库,首先点击保存按钮调用photoAccessHelper.getPhotoAccessHelper()得到媒体库图片管理器helper, 70 然后通过helper.createAsset()方法得到媒体库图片的uri, resourceManager.getMediaContent()可以得到存放在Resources/base/media文件下的banner.png图片内容, 71 使用fs.open()和fs.write()方法将图片内容通过得到的uri写到媒体库中,最后通过fs.close()方法关闭文件 72 * 源码链接:[SaveControl.ets](feature/authorizedControl/src/main/ets/authorizedControl/SaveControl.ets) 73 * 接口参考:[@ohos.file.photoAccessHelper](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-media-library-kit/js-apis-photoAccessHelper.md),[@ohos.file.fs](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-fs.md) 74 75 * 文本的复制和粘贴 76 77 * 使用PasteButton控件获取剪贴板信息,在其点击回调onclick事件中调用systemPasteboard.setData()方法将文本复制到剪贴板中,然后通过systemPasteboard.getData()方法得到剪贴板内容 78 * 源码链接:[PasteButton.ets](feature/authorizedControl/src/main/ets/authorizedControl/PasteControl.ets) 79 * 接口参考:[@ohos.pasteboard](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-pasteboard.md) 80 81 * 位置信息的获取 82 83 * 使用LocationButton控件获取定位信息,在其点击回调onclick事件中调用geoLocationManager.getCurrentLocation()方法得到当前定位信息经纬度。 84 * 源码链接:[LocationButton.ets](feature/authorizedControl/src/main/ets/authorizedControl/LocationControl.ets) 85 * 接口参考:[@ohos.geoLocationManager](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-location-kit/js-apis-geoLocationManager-sys.md) 86 87 88### 相关权限 89 90不涉及。 91 92### 依赖 93 94不涉及。 95 96### 约束与限制 97 981. 本示例仅支持标准系统上运行,支持设备:GPS定位功能仅支持部分机型。 992. 本示例仅支持API10版本SDK,SDK版本号(API Version 10 Release), 镜像版本号(4.0 Release)。 1003. 本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行。 101 102### 下载 103 104如需单独下载本工程,执行如下命令: 105 106``` 107git init 108git config core.sparsecheckout true 109echo code/Solutions/IM/GrapeSquare/ > .git/info/sparse-checkout 110git remote add origin https://gitee.com/openharmony/applications_app_samples.git 111git pull origin master 112``` 113