自学内容网 自学内容网

OpenHarmony社交分享类APP开发实战

介绍

本示例是一个社交分享类APP,搭建了不同的页面向用户提供获取社交信息等能力。为了减少频繁权限弹窗对用户的干扰,同时提供更小的授权范围,使用了安全控件做临时授权场景。当用户实际点击了某种类型的安全控件时,会由系统弹出相关通知弹窗,并对应用进行相应的临时授权。

效果预览

使用说明:

  1. 启动应用进入广告动画界面,动画结束后进入应用,整个应用分为三个部分"主页"、“发现”、“我的”,可以通过底部导航进行页面间的切换。
  2. "主页"可以查看各个用户发布的动态,点击任一图文可以进入动态详情界面。
  3. “动态详情页"主要包括上下两部分,上部分主要展示用户发布的动态,可以包括文字、图片、视频,长按图片或视频会浮出"保存"按钮,点击后会弹出授权通知弹窗,点击"知道了”,可以通过安全控件中的保存控件将图片或者视频保存到图库当中。
  4. "动态详情页"下部分展示用户的评论情况,点击底部"评论"按钮,在文本框中输入评论,长按文本框出现"复制 粘贴"按钮,点击"复制"按钮可以将选定信息写入剪贴板,点击"粘贴"按钮,可以通过安全控件中的粘贴控件从剪贴板中读取信息。
  5. “发现"页面,点击"同城"按钮可以通过安全控件中的位置控件获取当前定位,点击后会弹出授权通知弹窗,点击"知道了”,会跳转到"同城榜"界面并显示当前定位城市。点击"发现"页面中的"全部"按钮可以跳转到"热搜榜"界面。
  6. “热搜榜”、"我的"界面当前是静态页面。

工程目录

features/authorizedControl/src/main/ets             // 安全控件类HAR共享包
|---/authorizedControl    
|   |---LocationControl.ets                         // 位置控件            
|   |---PasteControl.ets                            // 粘贴控件
|   |---SaveControl.ets                             // 保存控件
|---/commonComponent
|   |---TrendsItem.ets                              // 单一动态组件         
|---/model
|   |---BaseMsg.ets                                 // 数据类型  
|   |---BasicDataSource.ets                         // 懒加载基本数据资源 
|   |---DataFactory.ets                             // 构造数据方法 
|   |---MockData.ets                                // 模拟数据  
|   |---TrendsDataSource.ets                        // 主页动态数据资源类  
|---/utils
|   |---Constants.ets                               // 封装常量
|   |---Logger.ets                                  // 封装日志类
|---/view
|   |---CommentDetailView.ets                       // 发现详情模块
|   |---MainView.ets                                // 主页模块
|   |---MineView.ets                                // 个人显示模块
|   |---SameCityListView.ets                        // 同城显示模块
|   |---SquareView.ets                              // 发现模块
|   |---TrendsDetailView.ets                        // 动态详情模块
products/phone/entry/src/main/ets
|---/entryability
|   |---EntryAbility.ts                             // Ability模块
|---/pages                                                               
|   |---AdvertisingPage.ets                         // 广告页面
|   |---CommentDetailPage.ets                       // 动态详情页面
|   |---HomePage.ets                                // 主页
|   |---SameCityListPage.ets                        // 同城页面
|---/utils
|   |---Constants.ets                               // 常量
|   |---Logger.ets                                  // 封装日志类
|   |---ResourceUtils.ets                           // 资源转换函数

具体实现

安全控件的使用:
  • 本示例安全控件的使用主要从图片和视频的保存、文本的复制和粘贴以及位置信息的获取三个模块体现:
    • 图片和视频的保存

      • 使用SaveButton控件保存图片或者视频到图库,首先点击保存按钮调用photoAccessHelper.getPhotoAccessHelper()得到媒体库图片管理器helper,
        然后通过helper.createAsset()方法得到媒体库图片的uri, resourceManager.getMediaContent()可以得到存放在Resources/base/media文件下的banner.png图片内容,
        使用fs.open()和fs.write()方法将图片内容通过得到的uri写到媒体库中,最后通过fs.close()方法关闭文件
      • 源码链接:SaveControl.ets
      • 接口参考:@ohos.file.photoAccessHelper@ohos.file.fs
    • 文本的复制和粘贴

      • 使用PasteButton控件获取剪贴板信息,在其点击回调onclick事件中调用systemPasteboard.setData()方法将文本复制到剪贴板中,然后通过systemPasteboard.getData()方法得到剪贴板内容
      • 源码链接:PasteButton.ets
      • 接口参考:@ohos.pasteboard
    • 位置信息的获取

      • 使用LocationButton控件获取定位信息,在其点击回调onclick事件中调用geoLocationManager.getCurrentLocation()方法得到当前定位信息经纬度。
      • 源码链接:LocationButton.ets
      • 接口参考:@ohos.geoLocationManager

相关权限

不涉及。

依赖

不涉及。

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:GPS定位功能仅支持部分机型。
  2. 本示例仅支持API10版本SDK,SDK版本号(API Version 10 Release), 镜像版本号(4.0 Release)。
  3. 本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/Solutions/IM/GrapeSquare/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向


原文地址:https://blog.csdn.net/weixin_61845324/article/details/137879760

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!