本文讲述如何开发一个 Flutter 鸿蒙插件,如何实现 Flutter 与鸿蒙的混合开发,以及双端消息通信。 flutterEngine) this.addPlugin(new ForestPlugin()); }}export {dataPreferences};该文件使的原生页面在加载时,配置 Flutter 引擎,注册插件 setMethodCallHandler(null); } getUniqueClassName(): string { return "ForestPlugin"; }以上代码实现了一个插件类 参考资料撰写双端平台代码(插件编写实现)用户首选项API
【HarmonyOS 5】鸿蒙发展历程一、鸿蒙 HarmonyOS 版本年代记鸿蒙 1.0:2019 年 8 月 9 日,华为在开发者大会上正式发布鸿蒙 1.0 系统,这一版本首次应用于华为荣耀智慧屏产品中 原生鸿蒙正式版也在 2025 年 3 月发布,进一步推动了鸿蒙生态向更纯粹、更自主的方向发展 。鸿蒙PC将在2025年5月发布。 到了 2019 年 5 月 14 日,华为鸿蒙商标获得注册公告,专用权限期从 2019 年 5 月 14 日至 2029 年 5 月 13 日,这为鸿蒙系统的商业化推广与应用提供了品牌保障,也正式拉开了鸿蒙系统在智能终端市场上的探索与发展序幕 三、鸿蒙的未来从当前技术趋势、市场环境和华为的战略布局来看,鸿蒙未来发展潜力巨大。 依托华为在 5G、芯片、物联网等领域的深厚积累,鸿蒙有望主导中国市场的智能家居和车联网标准,巩固万物互联入口地位。开发者生态也将迎来爆发式增长。
【HarmonyOS 5】鸿蒙mPaaS详解一、mPaaS是什么?mPaaS 是 Mobile Platform as a Service 的缩写,即移动开发平台。 动态加载机制:undefined容器支持动态加载插件、页面、资源等,无需重新发布应用即可更新功能,例如:加载新的H5页面或小程序模块;动态替换图片、字体等静态资源。 :模块化开发与热部署mPaaS采用插件化架构,将应用拆分为宿主容器和独立插件(如功能模块、业务组件),核心机制包括:插件动态加载:undefined宿主容器在运行时动态加载插件,无需重启应用即可启用新功能 例如:通过JS脚本动态修改H5页面的交互逻辑;在原生页面中注入脚本代码,实时调整业务流程。 5、性能优化与稳定性保障mPaaS底层集成了一系列性能优化和稳定性增强技术:内存管理:undefined通过插件化架构和沙箱机制,隔离不同模块的内存占用,结合自动垃圾回收(GC)优化,减少内存泄漏和OOM
前言插件已适配 DevEco Studio 5.0.5 Release 一年前,开发了一个json转对象的插件,如果不是今日用到,真的差点就把它给遗忘了,在用的时候,却发现,插件的版本已不兼容当前的 首先,我重新编译了插件,进行了上传,大家可以下载最新的安装包进行体验了,还是和以前一样,提供了在线版和IDE插件版,两个选择,最新的版本,除了升级了版本,兼容了最新的DevEco Studio ,还做了一层优化 ,或者在网页版中,点击右侧的下载插件按钮,到插件安装页面进行下载,这个页面除了插件下载之外,还有插件安装的步骤,大家可以按照指示,一步一步安装即可。 相关总结有的老铁说,这个插件为啥不上传到jetbrains插件市场,直接在IDE中搜索下载多好,这里需要说明的是目前DevEco Studio有自己的白名单控制,也就是,jetbrains插件市场中插件 本文标签:鸿蒙开发工具/DevEco Studio
前言本项目API>=13关于鸿蒙项目的组件化运行,已经分享了两种方式了,分别是IDE插件方式和node脚本方式,今天给大家带来第三种方式,Hvigor插件方式;和前两种方式不同的是,它的使用更加简单,不需要我们手动的去切换就能实现组件运行 hvigor插件依赖目前插件已经发布npm平台,版本号为1.1.8,大家可以按照如下方式进行依赖插件,在hvigor目录下的hvigor-config.json5中,找到dependencies,在里面追加 ,我们的插件就依赖完成了。 相关总结目前第一次运行的时候,会在根项目下生成一个harmonyComponent.json5文件,这个文件的主要目的,用于控制插件是否执行,默认为true,每次运行都会执行插件,false不执行插件内容 本文标签:鸿蒙开发工具/DevEco Studio
当然了,还有很多的应用场景,比如,在构建前,针对代码规范进行检查,如果有不符合规范的地方,输出到一个错误文件中,或者,需要针对项目中的代码进行动态修改等等场景,hvigor插件开发中如何去实现呢? 这就是这篇文章要概述的内容,hvigor插件中的文件操作。 5、读取文件读取文件,FileUtil提供了,三种读取方式,第一种是读取Json5文件readJson5()方法,第二种是同步读取文件readFileSync()方法,第三种是异步读取文件readFile json5文件的读取,会给我们直接返回json对象,我们直接可以进行对象操作,非常的方便。 本文标签:鸿蒙开发工具/DevEco Studio
前言本文API>=13,基于DevEco Studio 5.1.0 Release,版本号5.1.0.828上篇文章,我们针对鸿蒙开发中的模块,实现了单一模块运行,使用的是hvigor插件的形式,通过hvigor 插件,我们可以看到,它自动化执行了某些特定的任务,减少了我们的手动干预,确保了构建过程的一致可靠性,可以说,在实际的开发中,极大的提高了我们的开发效率,今天,我们这篇文章,就一起实现一个hvigor插件 '); } }}插件完成之后,然后在创建index.ts文件,并在该文件中声明插件方法的导出,如下代码export { myPlugin } from '. npm publish第四步:插件使用插件使用就很简单了,上篇文章中已经有过概述,大家可以查看上篇文章即可。 本文标签:鸿蒙开发工具/DevEco Studio
,接下来的几篇文章,我们会重点去了解一下,hvigor插件中的那些API用法,以便于实际的插件开发。 还记得上篇文章中,我们的插件开发是在哪里编写代码的吗? const subNode = node.getSubNodeByName('entry'); console.log(subNode);5、获取父级节点对象获取父级节点对象,可以getParentNode ,极大的提高了我们编写插件的效率。 本文标签:鸿蒙开发工具/DevEco Studio
本文介绍在鸿蒙应用中button组件的基本用法。 增加按钮组件 如下代码中红色部分所示,在布局中增加button组件。 <?xml version="1.0" encoding="utf-8"? /> </DirectionalLayout> <Component ohos:height="0vp" ohos:weight="<em>5</em>" onClick(Component v) { new ToastDialog(getContext()) .setText("你好,鸿蒙 按钮之后,为button组件增加了一段在画面底部显示“你好,鸿蒙!"信息的响应代码。需要注意的是id的格式:ResourceTable.Id_hello_button。 ?
【HarmonyOS 5】鸿蒙应用数据安全详解一、前言大家平时用手机、智能手表的时候,最担心什么?肯定是自己的隐私数据会不会泄露! 二、设备和数据的“安全通行证”1、 设备也有“安全等级”HarmonyOS给设备划分了5个安全等级(SL1-SL5):根据设备是否具备TEE(可信执行环境)、安全存储芯片等能力,将设备分为5个安全等级: 等级安全能力典型设备SL1 低安全 智能穿戴设备SL5 高安全 手机、平板数据跨设备同步时,需满足数据安全标签 ≤ 目标设备安全等级的规则。
【HarmonyOS 5】鸿蒙实现手写板一、前言实现一个手写板功能,基本思路如下:创建一个可交互的组件,用户在屏幕上触摸并移动手指时,会根据触摸的位置动态生成路径,并使用黑色描边绘制在屏幕上。 该组件的使用思路很简单,如下代码所示: Path() .commands(this.pathCommands) // 设置SVG路径描述字符串 .strokeWidth(5) // 设置路径的描边宽度为 5 .fill("none") // 设置路径的填充颜色为无 .stroke(Color.Black) // 设置路径的描边颜色为黑色 break; // 其他触摸类型,不做处理 default: break; } }5. // 设置路径的描边宽度为 5 .fill("none") // 设置路径的填充颜色为无 .stroke(Color.Black) // 设置路径的描边颜色为黑色
【HarmonyOS 5】鸿蒙星闪NearLink详解一、前言鸿蒙星闪NearLink Kit 是 HarmonyOS 提供的短距离通信服务,支持星闪设备间的连接、数据交互。 二、NearLink Kit 的接入与使用:点击跳转官方文档地址鸿蒙星闪(NearLink)的基本接入代码示例,包含设备发现、连接和数据传输的核心流程:// NearLink设备管理服务示例import } catch (error) { console.error(`Failed to release resources: ${error}`); } } }}三、鸿蒙星闪指标对比以下是鸿蒙星闪 、蓝牙和NFC在技术性能、应用场景、成本与生态系统等方面的区别表格:比较项目鸿蒙星闪蓝牙NFC传输速率最高可达2.5Gbps,低功耗模式下峰值速率可达12Mbps蓝牙5.2的传输速率为400Mbps,异步连接允许一个方向的数据传输速率达到
二、MQTT在鸿蒙中怎么使用?在鸿蒙(HarmonyOS)中使用MQTT协议主要通过官方提供的@ohos/mqtt库实现。 https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fmqtt配置依赖:ohpm install @ohos/mqtt或者在oh-package.json5中配置 : "dependencies": { "@ohos/mqtt":"2.0.18", }记得配置网络权限:在module.json5中配置: "requestPermissions
【HarmonyOS 5】鸿蒙应用隐私保护详解一、前言在今天这个手机不离手的时代,我们每天用手机支付、聊天、记录生活,不知不觉中,大量个人信息都存储在了移动设备里。 精准度在米级别大于等于9ohos.permission.LOCATION失败无法获取位置大于等于9ohos.permission.APPROXIMATELY_LOCATION成功获取到模糊位置,精确度为5公里大于等于 同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION成功获取到精准位置,精准度在米级别代码示例:首先在module.json5配置文件中声明权限 photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;photoSelectOptions.maxSelectNumber = 5; 代码示例:以申请相机权限为例,在module.json5配置文件中声明权限:{ "module": { // ...
DevEco Studio插件来辅助我们快速的切换。 前两种形式,之前的文章分享过,关于重构后的使用方式,我们放到之后的文章中概述,本篇文章,我们重点概述一下利用DevEco Studio插件,来快速的实现组件化运行。 插件使用目前插件包已经上传到了github,大家可以按需下载,地址如下:https://abnerming888.github.io/vip/load/HarmonyComponent-sign-1.0 .jar记得之前在json转对象一文中,有过简要说明,就是目前的DevEco Studio有自己的白名单控制,jetbrains插件市场中插件,在DevEco Studio是无法被搜索到的,所以,这里只能提供本地的安装方式 如果插件,您在使用的时候遇到了问题,可第一时间联系我,我一定及时的去解决。本文标签:鸿蒙开发工具/DevEco Studio
【HarmonyOS 5】鸿蒙中的UIAbility详解(三)一、前言本文是鸿蒙中的UIAbility详解系列的最终章。主要针对UIAbility的冷启动和热启动,对于want数据的处理。 配置可迁移能力在module.json5中设置continuable: true: { "abilities": [ { "name": "EditorAbility",
【HarmonyOS 5】鸿蒙中的UIAbility详解(二)一、前言今天我们继续深入讲解UIAbility,根据下图可知,在鸿蒙中UIAbility继承于Ability,开发者无法直接继承Ability 在module.json5配置文件中的launchType字段配置为singleton,multiton,specified即可。{ "module": { // ...
一、@State在鸿蒙中是做什么的?@State 是 HarmonyOS ArkTS 框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动 UI 的响应式编程模式。
【HarmonyOS 5】鸿蒙中的UIAbility详解(一)一、UIAbility是什么?Stage模型中的组件类型名,即UIAbility组件,包含UI,提供展示UI的能力,主要用于和用户交互。 5、ForegroundUIAbility切换至前台、UI可见前触发。申请系统资源(如定位、传感器权限)、恢复后台释放的资源。
首先创建插件,取名xm-hm ,选择uts api插件 然后去插件目录开始编写 修改package.json 文件 增加api扩展配置 找到uni_modules增加api扩展,示例如下: "uni_modules :"outApp", } } } 然后修改interface.uts 文件 增加如下代码 /** * interface.uts * uts插件接口定义文件 * } * } * } * @uniVueVersion 3 //支持的vue版本 * */ outApp(): void, } 接着创建鸿蒙插件和功能文件 ) as common.UIAbilityContext; context.terminateSelf(); console.log('out_app') } 至此,退出app的uts鸿蒙端插件已经写好了