首页 文章 精选 留言 我的

精选列表

搜索[HarmonyOS],共1235篇文章
优秀的个人博客,低调大师

#HarmonyOS NEXT体验官# 应用文件访问

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-csdn&ha_sourceId=89000445 沙箱目录的理解 访问和管理应用文件,对于每个应用,系统会在内部存储空间映射出一个专属的应用沙箱目录,是应用文件目录与一部分系统文件所在的目录组成的集合。也就是应用可见的目录范围即为“应用沙箱目录”。 优点: ·隔离性:应用沙箱提供了一个完全隔离的环境,使用户可以安全地访问应用文件。 ·安全性:应用沙箱限制了应用可见地数据地最小范围,保护了应用文件地安全。 文件操作接口 新建并读写一个文件 注意 在测试试用的时候,可以写数据,也可以读到数据,但是在模拟器的文档中找不到相关的文件。有大佬知道问题的可以留言哈(转载自51CTO,作者:奥尼5354)

优秀的个人博客,低调大师

HarmonyOS 管理页面跳转及浏览记录导航

历史记录导航 使用者在前端页面点击网页中的链接时,Web组件默认会自动打开并加载目标网址。当前端页面替换为新的加载链接时,会自动记录已经访问的网页地址。可以通过forward()和backward()接口向前/向后浏览上一个/下一个历史记录。 在下面的示例中,点击应用的按钮来触发前端页面的后退操作。 // xxx.ets import web_webview from '@ohos.web.webview'; @Entry @Component struct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Button('loadData') .onClick(() => { if (this.webviewController.accessBackward()) { this.webviewController.backward(); return true; } }) Web({ src: 'https://www.example.com/cn/', controller: this.webviewController}) } } } 如果存在历史记录,accessBackward()接口会返回true。同样,您可以使用accessForward()接口检查是否存在前进的历史记录。如果您不执行检查,那么当用户浏览到历史记录的末尾时,调用forward()和backward()接口时将不执行任何操作。 页面跳转 当点击网页中的链接需要跳转到应用内其他页面时,可以通过使用Web组件的onUrlLoadIntercept()接口来实现。 在下面的示例中,应用首页Index.ets加载前端页面route.html,在前端route.html页面点击超链接,可跳转到应用的ProfilePage.ets页面。 ​ ● 应用首页index.ets页面代码。 // index.ets import web_webview from '@ohos.web.webview'; import router from '@ohos.router'; @Entry @Component struct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Web({ src: $rawfile('route.html'), controller: this.webviewController }) .onUrlLoadIntercept((event) => { let url: string = event.data as string; if (url.indexOf('native://') === 0) { // 跳转其他界面 router.pushUrl({ url:url.substring(9) }) return true; } return false; }) } } } ​ ● route.html前端页面代码。 <!-- route.html --> <!DOCTYPE html> <html> <body> <div> <a href="native://pages/ProfilePage">个人中心</a> </div> </body> </html> ​ ● 跳转页面ProfilePage.ets代码。 @Entry @Component struct ProfilePage { @State message: string = 'Hello World'; build() { Column() { Text(this.message) .fontSize(20) } } } 跨应用跳转 Web组件可以实现点击前端页面超链接跳转到其他应用。 在下面的示例中,点击call.html前端页面中的超连接,跳转到电话应用的拨号界面。 ​ ● 应用侧代码。 // xxx.ets import web_webview from '@ohos.web.webview'; import call from '@ohos.telephony.call'; @Entry @Component struct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Web({ src: $rawfile('xxx.html'), controller: this.webviewController}) .onUrlLoadIntercept((event) => { let url: string = event.data as string; // 判断链接是否为拨号链接 if (url.indexOf('tel://') === 0) { // 跳转拨号界面 call.makeCall(url.substring(6), (err) => { if (!err) { console.info('make call succeeded.'); } else { console.info('make call fail, err is:' + JSON.stringify(err)); } }); return true; } return false; }) } } } ​ ● 前端页面call.html代码。 <!-- call.html --> <!DOCTYPE html> <html> <body> <div> <a href="tel://xxx xxxx xxx">拨打电话</a> </div> </body> </html> 本文由博客一文多发平台 OpenWrite 发布!

优秀的个人博客,低调大师

HarmonyOS NEXT】【自定义组件】下拉选择框

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398 背景 在项目中遇到了一个下拉选择框组件的开发需求: ·选择框的三角箭头需要在点击时跟随转动。 ·弹出的选择框需要基本满框弹出。 ·选择框显示选择的项的方式为后面加一个✔的符号或图片。 ·选择框选择不是第一个默认的时候,需要提供一个不同颜色的显示提醒用户。 ·选择框需要提供方法,实现选择第一列的数值的时候,可以格式化成其他的文字内容。 根据测试发现,系统自带的Select组件的自定义无法满足想要的效果,因此根据多次的测试后,选择使用Toggle+bindMenu的方式,实现对组件的最大自定义封装。并提供了Option设置类,代码复制后可以直接使用。 实现效果 代码文件 SelectDemo 调用使用页面文件 ToggleMenuOption 自定义组件配置类,提供了是否显示菜单,选中字符、菜单索引等组件内容设置,大家可以根据自己的需求修改当前类的内容,可以添加和删减 ToggleMenu 封装组件 总结 上述文章是对下拉框选择组件的一种封装和实现的方式,其中也遇到了一些问题,比如说: ·菜单组件的宽度设置成“100%”的时候,菜单会自动内缩一段距离,然后也没有办法进行调整,如果弹出菜单内容的宽度也设置成100%的话,会出现超出界面不显示的问题。(希望后面会解决这个问题) 希望这篇文章对大家可以有所帮助,或者有什么可以改进的地方,欢迎大家交流(转载自CSDN,作者:baobao熊)

优秀的个人博客,低调大师

#HarmonyOS NEXT体验官# 应用权限原理和封装

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-csdn&ha_sourceId=89000445 背景 在项目中,避免不了需要调用系统资源和系统能力,比如:日历读写、摄像头等。因此,需要了解对系统资源访问权限的申请方式方法。 授权方式 包括两种授权方式,分别是system_grant(系统授权) 和 user_grant(用户授权)。 system_grant(系统授权) 仅需要在module.json5文件中,标注需要的权限,应用打开时,系统会自动赋予需要的权限。 user_grant(用户授权) 需要在项目中向系统发送申请,然后由用户决定是否给应用提供需要的权限。 应用的授权等级(APL) 一共有三个等级:normal、system_basic、system_core。权限等级依次提高。 · normal 等级是全部应用都可以使用 · system_basic 等级是需要申请签名证书后,才能使用 · system_core 等级是对系统应用开放,对第三方应用不开放 应用权限 · 对所有的硬件开放 · 受限开放权限 封装代码 PermissionUtils类 封装了三个常用的方法: · 检查权限是否授权(CheckPermissions) · 申请授权(RequestPermissions) · 打开系统设置的权限管理页面(OpenPermissionSettingsPage) index界面 添加三个按钮分别测试对应的方法 需要注意的是,所有的权限都需要先去module.json5中配置权限: 模拟器中询问受限制的权限 下图的权限,可以在模拟器的调试阶段,使用自动签名的方式使用: 如果没有自动签名时,添加这些权限在module.json5文件中,编辑会报错。 需要注意的点: · 确保已经连接真机或模拟器 · 打开项目结构,然后勾选自动生成签名文件 · 在项目的build-profile.json5文件下,查看signingConfigs下是否签名成功 (转载自51CTO,作者:奥尼5354)

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。