-
鸿蒙开发实战: 推送服务介绍推送服务是一种能够将消息从服务器传递到客户端设备的技术。在鸿蒙操作系统(HarmonyOS)中,推送服务可以有效帮助应用在不频繁启动的情况下接收实时通知和信息更新。应用使用场景即时通讯应用:接收新的聊天信息。社交媒体:获取点赞、评论等通知。新闻应用:推送最新热点新闻。电子商务:及时促销信息和订单状态提醒。原理解释推送服务通常采用长连接技术,维持客户端与服务器之间的连接,从而实现及时的信息传递。常用的推送机制包括:HTTP/2 长连接MQTT(Message Queuing Telemetry Transport)WebSockets算法原理流程图+--------------------+ | 服务器端准备消息 | +--------+-----------+ | v +--------+-----------+ | 检查用户在线状态 | +--------+-----------+ | v +--------+-----------+ | 通过协议发送消息 | +--------+-----------+ | v +--------------------+ | 客户端接收并处理 | +--------------------+算法原理解释消息准备:服务器根据业务逻辑生成需要推送的消息。检查在线状态:判断目标用户是否在线,以决定是否立即推送或缓存。消息发送:利用合适的网络协议(如MQTT)进行消息传输。消息接收与处理:客户端保持一个长连接以便随时接收消息,并在接收到消息后进行相应的处理,比如通知用户或者更新界面。实际详细应用代码示例实现以下是一个简单的鸿蒙应用推送服务示例:服务器端示例(Node.js + MQTT)const mqtt = require('mqtt'); const client = mqtt.connect('mqtt://broker.hivemq.com'); client.on('connect', function () { console.log('Connected to MQTT broker'); // 推送消息给特定主题 client.publish('harmonyos/push', 'Hello from HarmonyOS Push Service!'); });客户端示例(HarmonyOS FA)import ohos.eventhandler.EventHandler; import ohos.eventhandler.EventRunner; import ohos.rpc.MessageParcel; import ohos.rpc.RemoteException; import ohos.rpc.IRemoteObject; import ohos.rpc.RemoteObject; public class PushService extends RemoteObject { public PushService(String descriptor) { super(descriptor); } @Override public boolean onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) throws RemoteException { if (code == RECEIVE_PUSH_MESSAGE) { String message = data.readString(); // 在此处理接收到的推送消息 System.out.println("Received push message: " + message); return true; } return false; } }测试代码测试代码主要检验推送功能是否正常,可以设置一个测试用例来模拟服务器发送推送消息,然后观察客户端是否正确接收到。部署场景开发环境:本地搭建服务器,通过内网方式测试推送功能。生产环境:部署到公网服务器,通过域名和SSL证书保证安全性和可达性。材料链接鸿蒙官方文档MQTT Protocol Documentation总结推送服务在现代应用中起着至关重要的作用。通过使用合适的网络协议,开发者能够确保消息的及时性和可靠性。这对提升用户体验有显著效果。未来展望随着物联网(IoT)设备数量的增加和5G网络的普及,推送服务将越来越多地用于实时数据同步和设备互联。优化节能和安全性将成为未来发展的重点方向。
-
想参加最新的活动,期望能够及时通知
-
11月16日,华为开发者布道师技术沙龙·西安站将在西安交通大学创新港校区举办,将由华为云、鸿蒙和AI领域的技术专家做产业前沿规划的宣讲,同时,来自西安6所高校11位教师开发者布道师将分别从产学合作课程建设、融合产业新技术的创新项目和大赛获奖作品案例三个方向分享他们与华为合作的经验、收获。这是一场知识和经验交融的盛会,是高校师生深入了解华为生态技术,探寻合作机会的绝佳平台,精彩不容错过。诚邀西安区域和周边高校师生报名参与,期待在西安与您相遇!报名链接:cid:link_0
-
星盾安全架构:鸿蒙系统引入了全新的星盾安全架构,该架构实现了生态纯净、隐私可控以及数据高安的安全使用体验。它改变了传统的隐私管理模式,从“管权限”转变为“管数据”,例如在发送图片时,系统仅授予应用所需图片的权限,而不是整个相册的权限,从而防止了数据的不必要接触和潜在泄露。应用管控中心:鸿蒙系统提供了应用管控中心,能够智能识别应用的风险行为,并给出将其放入应用管控中心的提示,以便在更安全可控的环境下调用。对于被加入管控的应用,系统会通过空白信息、模糊定位等方式隐藏或禁用真实敏感的用户数据,并限制应用弹框,确保应用在安全受控的前提下正常运行。隐私保护功能:鸿蒙系统提供了图片隐私保护功能,可以在分享照片时去除图片的位置信息和拍摄数据。此外,还有AI隐私保护功能,可以自动识别并一键打码身份证、银行卡号、车票信息、头像昵称等敏感信息,防止隐私泄露。系统级文件加密分享:鸿蒙系统支持系统级的文件加密分享机制,用户可以在手机或平板上对文件进行加密,只有授权的用户才能打开,这种系统级的分享机制不依赖应用,不限分享渠道,并支持多种文件类型。安全认证:鸿蒙系统的安全能力获得了行业最高等级的安全认证,鸿蒙内核获得了国际CC EAL6+证书,这是业界通用操作系统内核领域首个6+等级认证。整个系统还获得了中国CCRC EAL5+认证,是业界唯一获得此认证的操作系统。隐私灯功能:鸿蒙系统推出了全新的隐私灯功能,能在状态栏明确提示用户当前有应用正在使用麦克风、摄像头或地理位置,并能做到全局的实时显示,有效防止被应用覆盖,确保用户能够实时了解应用正在使用的敏感权限。应用权限管理:鸿蒙系统全面梳理了所有系统授权,禁止开放了9类不合理权限,包括读取已安装应用列表、访问短信、访问存储文件等,确保应用只能访问特定权限,保护用户数据的安全和私密性。分布式架构:鸿蒙系统的分布式架构支持多种设备间的无缝协作,允许手机轻松连接到其他设备,实现资源共享和跨设备的任务处理,同时确保了数据在不同设备间的安全传输。微内核设计:鸿蒙系统采用微内核设计,有效防止了外部攻击,并且通过形式化方法,重塑可信安全,提供更强的安全特性和低时延等特点。数据生命周期保护:鸿蒙系统参照数据的风险分级,提供了基于全生命周期的数据保护能力,包括数据的生成、存储、使用、传输和销毁等阶段,确保数据在各个阶段的安全。
-
一年一度属于开发者们的节日如期而至祝所有开发者们1024程序员节快乐愿你们的变量永远不溢出循环永远不陷入死锁,代码逻辑清晰无bug在这个特别的日子里让我们跟随几位优秀开发者听听他们的编码趣事和1024特别祝福video听完了华为云和他的开发者朋友们的祝福还有一群华为云的老朋友有话说他们中加入华为云生态最久的已经有2000多天一路走来,他们与华为云携手相伴在华为生态中大放异彩1024,码客聚会,云上跃迁一起走近华为云和他的开发者朋友们的精彩故事文末更有1024双重福利等你来领~(Tips:扫描图片底部二维码可查看故事详情)1024福利来袭:免费领取云主机,随时随地开发更便利值此1024程序员节,华为云开发者联盟为大家带来特别福利,点击链接加入华为开发者空间,免费领取您的专属云主机。华为开发者空间,汇聚鸿蒙、昇腾、鲲鹏、GaussDB、欧拉等各项根技术的开发资源及工具,致力于为每位开发者提供一台云主机、一套开发工具及云上存储空间,让开发者基于华为根生态创新。分享文章并留言,抽送华为云云宝全套手办即日起分享微信文章(点击查看)至朋友圈,并在微信文章留言互动,我们将在留言区随机抽选5名开发者各赠送华为云云宝全套手办1套。中奖小Tips:留言分享你的开发故事or你印象最深的编码时刻,更容易被选中哦~
-
华为云开发者日·南京站来啦!参加“仓颉鸿蒙应用开发初体验”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】仓颉鸿蒙应用开发初体验【活动时间】2024年10月25日-10月31日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“仓颉鸿蒙应用开发初体验”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
参考书籍资料:《鸿蒙操作系统设计原理与架构》 (李毅,任革林)布道活动地点:东北大学(浑南校区)
-
华为云bilibili官方账号在今年六月底发布了视频 【盘古研发大模型重塑CodeArts,支持鸿蒙应用智能高效开发】 ,演示了CodeArts Snap在 根据原型图生成ArkUI代码 和 Java代码转为ArkTS代码 上的功能,但是我今天试了一下,CodeArts Snap在ArkTS代码方面的回答依然不是那么让人满意,更别提那个视频中展示的内容了。这个情况是因为ArkTS目前仍在更新中吗?还是有其他的什么原因?
-
华为云开发者日·武汉站来啦!参加“仓颉鸿蒙应用开发初体验”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】仓颉鸿蒙应用开发初体验【活动时间】2024年10月16日-10月20日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“仓颉鸿蒙应用开发初体验”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
鸿蒙千帆起,越来越多的开发者启动鸿蒙原生应用开发,开发者创新中心提供全面的合作资源与支持服务,从了解、到学习评估、到开发上架以及技术支持,帮助不了解鸿蒙应用开发的伙伴快速转身、快速具备鸿蒙应用开发的能力。诚邀您加入鸿蒙生态,开启鸿蒙原生应用开发!直播链接:cid:link_0Q:鸿蒙应用的市场分析工具有哪些?是否有配套用户行为分析工具?A:在 HarmonyOS 中,开发者可以通过集成 Huawei Analytics Kit、Firebase Analytics、Google Analytics 或 Mixpanel 等分析 SDK 来实现用户行为分析。此外,还可以定义自定义事件、存储和处理数据、并使用数据可视化工具(如 Tableau 或 Power BI)来深入分析用户行为数据。这些技术和工具帮助开发者理解用户的使用模式,优化应用体验。Q:HarmonyOS 的元服务有哪些优势A:免安装,更轻量化地将服务带给用户,一键服务直达,将用户感兴趣的内容前置、外显。跨端转移,多终端设备间无缝流转。情景智能卡片推荐,随心定制、更懂用户。支持多端协同,如手机用作文档翻页和批注,配合智慧屏显示完成分布式办公;手机作为手柄,与智慧屏配合玩游戏。Q:鸿蒙开发者有哪些市场需求岗位?职业发展路径如何规划?A:从市场调研数据来看,2024年鸿蒙开发相关岗位的需求同比增长超过30%,尤其在智能设备开发、用户界面设计和系统安全等领域表现尤为突出。这些岗位不仅提供了丰厚的薪资待遇,平均月薪达到2,0000至30,000元。Q:HarmonyOS后续发展方向是怎么样的?A:HarmonyOS的核心愿景是实现万物互联,而HarmonyOS NEXT在这一点上做得更为彻底。 未来,随着物联网设备的普及和5G技术的进一步成熟,HarmonyOS NEXT将在智能家居、智慧城市、智能交通等领域发挥更大的作用。Q:鸿蒙的微内核设计相比于传统内核有哪些优势?A:鸿蒙操作系统采用了微内核架构,与传统宏内核架构相比,微内核具有更轻量、更安全、更灵活等优点。Q:开发者创新中心提供的合作资源具体包含哪些类型?A:华为开发者创新中心赋能产教融合,提供体验、学习、实践、职业发展一站式平台。通过“技术科普、互动体验、动手实操“多元化的展示方式,培养学生的动手实践以及创新能力,助力院校培养高水平应用型学生,制定并提供人才培养的解决方案。详情请查看:https://bbs.huaweicloud.com/blogs/346023Q:arkTS可以直接在仓颉里面使用吗?A:在 OpenHarmony 系统上,ArkTS 具备完整广泛的生态,为复用 ArkTS 生态,仓颉支持与 ArkTS 高效跨语言互通。 仓颉-ArkTS 互操作基于仓颉 CFFI 能力,通过调用 ArkTS 运行时接口,为用户提供库级别的 ArkTS 互操作能力。 一、使用场景: 1.在 ArkTS 应用开发仓颉模块:把用户仓颉代码封装成为 ArkTS 模块,能够被 ArkTS 代码加载和调用。 2.在仓颉应用里使用 ArkTS 存量库:在仓颉代码里创建新的 ArkTS 运行时,并加载和执行 ArkTS 的字节码。Q:如何在鸿蒙操作系统中实现设备间的通信?A:鸿蒙操作系统提供了多种API来实现设备间的数据共享和交互,主要包括以下几个方面:分布式数据管理:鸿蒙的分布式数据管理API允许开发者在设备间同步和共享数据,这些数据可以存储在分布式数据库中,并由各个设备共享和访问。远程调用与消息传递:通过远程调用(RPC)和消息传递机制,开发者可以在不同设备间进行数据交换和命令传递。这使得一个设备可以控制或获取另一个设备上的数据或执行某些操作。数据虚拟化与共享:鸿蒙还提供数据虚拟化和共享的API,如虚拟卡片、虚拟列表等,这些可以帮助开发者在多设备间同步和展示数据。安全与隐私保护:在设备间共享数据时,安全性是非常重要的。鸿蒙提供了强大的安全机制来保护数据的隐私和完整性,包括数据加密、访问控制等。多设备协同与任务流转:鸿蒙的API还支持多设备协同工作和任务流转,如任务接力、多设备同时编辑等,这需要设备间紧密的数据交互和同步。使用这些API,开发者可以轻松地实现设备间的数据共享和交互,从而提供更加丰富和无缝的用户体验。同时,鸿蒙操作系统也为开发者提供了许多工具和文档,以简化开发过程和提高开发效率。Q:鸿蒙系统有哪些开发框架?A:ARKUI,ARKUI-XQ:鸿蒙系统对游戏开发者有哪些特别支持?开发者如何参与鸿蒙生态的共建?A:主流的游戏引擎如cocos,unity已经完成了鸿蒙适配,支撑游戏开发者可以快速的将自己的游戏进行鸿蒙适配。Q:鸿蒙应用开发语言主要有哪些?A:鸿蒙应用开发主要使用ArkTS作为应用开发语言,它提供了简洁自然的声明式语法和组件化机制,为开发者带来易学、易懂、简洁开发的优质体验1。此外,鸿蒙系统还支持其他语言,包括Java、C/C++、JS和Kotlin23。Q:如何能成为鸿蒙合作伙伴?A:1.注册华为企业开发者账号、2.申请加入合作伙伴、3.审核企业资质、4.签署合作协议、5.产品认证/申请认证、6.成为合作伙伴。Q:鸿蒙生态与其他操作系统生态的竞争优势有哪些?A:技术先进性:鸿蒙系统采用微内核设计,具有更高的安全性和稳定性。 与传统的宏内核系统相比,微内核系统在资源占用和运行效率上具有明显优势。 此外,鸿蒙系统还采用了分布式技术,能够实现设备间的无缝连接和协同工作,为用户带来更好的体验。Q: ArkCompiler有哪些应用场景/优势?A:ArkCompiler是华为自研的统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片平台的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。Q:前端开发和flutter兼容吗?A:兼容Q:鸿蒙系统在智能汽车领域有哪些案例?A:伴随着自动驾驶能力的成熟,智能座舱 域将与自动驾驶域实现联动,以调用、集成 ADAS 的能力,从而扩大其使用场景的范围,并在 此基础上联动手机、家电、可穿戴设备等多种智能终端,驱动车机生态从“手机-汽车”移动 互联向“汽车-AIoT”万物互联转变。Q:鸿蒙系统的原生智能功能是如何实现的?A:有别于传统的 AI 能力开放,在鸿蒙原生智能架构下,AI 能力与鸿蒙各子系统深度融合,将图像智能,通话智能,文档智能,跨应用协同等能力向应用开放,通过 AI 控件、API 的方式为开发者提供体验好、接入快、功能丰富的 AI 开放能力,让 HarmonyOS 的开发者可以快速友好地构筑鸿蒙原生智能应用。Q:个人开发者在鸿蒙生态合作中能获得哪些发展机会?A:更多的工作机会。可以参加鸿蒙开发者大赛、耀星计划、HDD等活动,助力开发者实现业务发展。Q:HarmonyOS 在性能调优方面有哪些功能?A:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-profiler-introduction-V5Q:有哪些渠道可以向技术支持反馈开发过程中的问题?A:https://developer.huawei.com/consumer/cn/support/feedback/#/Q:有哪些渠道可以向技术支持反馈开发过程中的问题?A:https://developer.huawei.com/consumer/cn/support/feedback/#/Q:HarmonyOS鸿蒙5.0将会有哪些功能 ?A:https://developer.huawei.com/consumer/cn/doc/?ha_source=sem&ha_sourceId=89000605Q:DevEco Studio是否有接入云服务?对AR/VR应用的支持程度如何?A:https://developer.huawei.com/consumer/cn/deveco-studio/想要了解更多鸿蒙应用开发相关知识,欢迎观看DTSE Tech Talk 系列技术直播
-
鸿蒙版cordova/PhoneGap介绍鸿蒙版cordova或PhoneGap,这里统称为鸿蒙版Cordova,遵守cordova官方,不再使用鸿蒙版PhoneGap了。 cordova移动端跨平台研发的重要框架之一,支持Android和Ios,官方并不支持鸿蒙系统,harmony-cordova是鸿蒙的cordova,这里主要介绍鸿蒙版corddova,安卓和Ios请查看cordova官方文档,cordova除了cordova sdk外,还有很多的插件,开发者根据自己的APP的需要可以选择使用相关的插件,鸿蒙版cordova sdk地址鸿蒙版cordova已经上架鸿蒙三方库中心,开发者可以直接在DevEco studio中直接使用。cordova sdk 三方库地址:https://ohpm.openharmony.cn/#/cn/detail/harmony-cordova鸿蒙版cordova支持的插件插件ID接口地址说明cordova-plugin-whitelistcid:link_12白名单cordova-plugin-network-informationcid:link_0网络管理cordova-plugin-inappbrowsercid:link_8内置浏览器cordova-sqlite-storagecid:link_11嵌入式数据库cordova-plugin-cameracid:link_14相机功能cordova-plugin-filecid:link_15本地文件管理cordova-plugin-file-transfercid:link_5上传和下载文件cordova-plugin-dialogscid:link_13弹窗cordova-plugin-datepickercid:link_1日期选择phonegap-plugin-barcodescannercid:link_3扫码cordova-plugin-media-capturecid:link_6视频录制cordova-plugin-alipay-v2调用接口:cid:link_9依赖插件:https://ohpm.openharmony.cn/#/cn/detail/@cashier_alipay%2Fcashiersdk自定义支付宝支付插件,只是按照文档接口调用了支付宝插件依赖支付宝官方插件aliyun.uploadvod暂无文档,需联系开发者阿里云OSS插件,实现移动端直接上传文件到阿里云OSScordova-plugin-android-permissionscid:link_2授权插件,接口永远返回为拥有权限,主要为兼容android移植到harmony使用的,避免修改Android端的代码,harmong授权已下放到各个插件,无需单独编写代码phonegap-bluetooth-plugincid:link_10经典蓝牙插件cordova-plugin-ble-centralcid:link_10低功耗蓝牙插件cordova-base64-to-gallerycid:link_7保存图片到相册cordova-plugin-huawei-pushcid:link_4华为推送,自定义插件,详细使用请咨询开发者Android移植鸿蒙步骤1,打开DevEco创建项目,选择Empty Ability进入下一步,填写必要信息,这里要注意,bundle name 先填写com.example.myapplication,也就是保持默认不变,因为在没有cordova.crt证书的情况下,cordova鸿蒙版要求bundle name必须为com.example.myapplication,主要用于研发测试,如果开发测试完成要修改bundle name上架鸿蒙应用市场,请联系开发者申请cordova.ert证书,或者事先联系开发者提供技术服务。2,项目创建成功后,复制原有Android studio的工程assests/www目录下面的所有文件到鸿蒙工程entry/src/main/resources/目录下,注意直接复制原andriod工程www目录下的文件,不包含www。3,复制原android工程res/xml目录下的config.xml文件到鸿蒙工程entry/src/main/resources/目录下。4,打开DevEco studio的Terminal终端,进入工程目录,执行 ohpm install harmony-cordova 安装本插件。5,打开鸿蒙工程文件entry/src/main/etx/pages/Index.ets文件,修改代码如下:import { MainPage, pageBackPress, pageHideEvent, pageShowEvent } from 'harmony-cordova/Index'; @Entry @Component struct Index { onPageShow(){ pageShowEvent(); //页面显示通知cordova } onBackPress() { pageBackPress(); //拦截返回键由cordova处理 return true; } onPageHide() { pageHideEvent(); //页面隐藏通知cordova } build() { RelativeContainer() { MainPage(); //webview首页index.html } .height('100%') .width('100%') } }6,打开鸿蒙工程文件/entry/src/main/ets/entryAbility/EntryAbility.ets文件,修改onCreate函数如下import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; import { webview } from '@kit.ArkWeb'; import { setSchemeHandler } from 'harmony-cordova/Index';...onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {webview.WebviewController.initializeWebEngine();//webview引擎初始化setSchemeHandler();//设置webview schemehilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');}7,鸿蒙混合研发,也许您会增加其他page页面,不一定应用的首页为cordova webview(index.html)的首页,例如应用增加了鸿蒙的原生的启动页面,包含首页弹窗,同意隐私政策后,然后再从启动页面进入cordova的页面,这样避免在用户没有同意隐私政策的情况下,初始化cordova sdk,因为初始化cordova sdk,系统读取了设备的网络状态,因为国内相关法律规定,在用户没有同意隐私政策的情况下,不允许读取设备的网络标识。8,做以上代码修改后,鸿蒙的移植已经完毕,可以使用模拟器或者真机进行编译和测试了。Ios移植鸿蒙步骤如果您的项目有android和Ios的工程,请参考android项目移植项目的鸿蒙下,如果您的项目没有andriod工程,只有Ios工程,请使用如下方法移植,移植时大部分内容和安卓一样,只是复制的文件的路径不一致,以下只介绍不同部分,相同部分请参考android移植步骤。1,复制Xcode的Ios工程目录下的Staging/www目录下的所有文件到鸿蒙工程entry/src/main/resources/目录下。 2,Xcode工程的config.xml文件在Staging目录下,Xcode工程的该文件不能直接被鸿蒙版cordova使用,需要进行转换,该文件主要记录的是插件的名称和初始化的类,因为鸿蒙版是根据android的config.xml进行插件初始化的,因此需要将Xcode工程config.xml转为安卓的config.xml,请将Xcode工程使用node加入安卓平台,系统会自动生成android版的config.xml。然后将文件复制到鸿蒙版工程的entry/src/main/resources/下。附加说明:本人认为使用cordoca跨平台研发,一般至少都会包含android和ios两大平台,很少只有ios平台,没有android平台的,所以大部分移植鸿蒙参考android移植步骤,后续升级SDK会兼容Ios工程的config.xml,无需转换就可以使用。新项目,一次开发适用于andriod、Ios和Harmony三大平台由于cordova官方当前并不支持HarmonyOS平台,使用node无法直接将HarmonyOS加入到cordova,也无法直接安装插件到HarmonyOS,因此对于新项目要一次开发满足三大平台的话,建议先通过node加入Android和Ios平台和安装插件,后续研发可以使用Android studio研发和调试,待研发成功后,然后再在Xcode和DevEco做跨平台适配。Xcode适配请参考cordova的官方文档,HarmonyOS适配请参考以上Android的移植步骤。特别说明当前版本不支持使用者自定义插件研发,如果该版本没有包含您要使用的插件,或者您的项目中有Android或Ios的自定义插件,需要移植到HarmonyOS平台,请您和本开发者联系,获取技术支持。使用鸿蒙版cordova sdk在开发测试阶段务必将bundle name修改为com.example.myapplication,如果将bunlde name改为正式的Id,鸿蒙版cordova sdk会读取entry/src/main/resources/目录的cordova.crt证书文件,用于验签,如果该文件不存在,启动应用后,应用会闪退。如果应用的bundle name为com.example.myapplication,鸿蒙版 cordova sdk会跳过验签,不检测cordova.crt文件。但是上架鸿蒙应用市场,必须将bundle name改为正式的id,所以请联系开发者申请cordova.ert证书,另外由于操作系统之间的差异,虽然保持了cordova的插件接口不变,但是返回值会有所调整,后续文档会逐步完善,在使用本插件跨平台研发时请联系开发者提供技术服务。
-
在鸿蒙ArkTs中,页面的生命周期是指页面从创建到销毁所经历的一系列状态和事件。这些生命周期事件为开发者提供了在特定时刻执行代码的机会,从而能够更好地管理页面的行为和资源。以下是对鸿蒙ArkTs中页面生命周期的详细介绍:页面生命周期接口鸿蒙ArkTs中的页面生命周期主要由被@Entry装饰的组件来调用,这些组件作为页面的入口,拥有特定的生命周期函数。以下是页面生命周期的主要接口:onPageShow:触发时机:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。作用:这是进行页面数据加载、动画启动等操作的理想时机。onPageHide:触发时机:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。作用:此时页面仍然保留在内存中,但不再对用户可见。开发者可以在此函数中暂停一些不必要的后台操作,以节省系统资源。onBackPress:触发时机:当用户点击返回按钮或执行其他返回操作时触发。作用:开发者可以在此函数中执行一些清理工作,如保存用户输入、确认用户是否真的要离开页面等。生命周期调用时机示例以下是一个简单的示例,展示了如何在鸿蒙ArkTs页面中使用这些生命周期函数:@Entry @Component struct MyComponent { @State showChild: boolean = true; // 页面每次显示时触发一次 onPageShow() { console.info('Index onPageShow, 页面每次显示时触发一次'); } // 页面每次隐藏时触发一次 onPageHide() { console.info('Index onPageHide, 页面每次隐藏时触发一次'); } // 当用户点击返回按钮时触发 onBackPress() { console.info('Index onBackPress, 当用户点击返回按钮时触发'); } // 组件即将出现时回调该接口 aboutToAppear() { console.info('MyComponent aboutToAppear'); } // 在组件销毁之前执行 aboutToDisappear() { console.info('MyComponent aboutToDisappear'); } build() { Column() { // this.showChild为true, 创建Child子组件, 执行Child aboutToAppear if (this.showChild) { Child() } // this.showChild为false, 删除Child子组件, 执行Child aboutToDisappear Button('delete Child').onClick(() => { this.showChild = false; }) // push到Page2页面, 执行onPageHide Button('push to next page').onClick(() => { router.pushUrl({ url: 'pages/Page2' }); }) } } }在上面的示例中,MyComponent是一个被@Entry装饰的页面组件,它拥有页面生命周期函数onPageShow、onPageHide和onBackPress。同时,它还拥有组件生命周期函数aboutToAppear和aboutToDisappear,但这两个函数在页面组件中通常不是必需的,因为它们更多地用于自定义组件。注意事项只有被@Entry装饰的组件才可以调用页面的生命周期函数。开发者应根据页面的具体需求,在合适的生命周期函数中执行相应的操作,以优化应用性能和用户体验。综上所述,鸿蒙ArkTs中的页面生命周期为开发者提供了在特定时刻执行代码的机会,有助于更好地管理页面的行为和资源。通过合理利用这些生命周期函数,可以打造更加高效、流畅且用户友好的鸿蒙应用。
-
鸿蒙ArkTs项目中的AppScope/app.json5文件是一个配置文件,用于定义应用程序的基本信息和属性。这个文件是鸿蒙应用开发框架(ArkTS)中不可或缺的一部分,它帮助开发者在构建和打包应用时提供必要的元数据信息。鸿蒙中 AppScope 的目录结构如下图AppScope/app.json5 文件的内容如下{ "app": { "bundleName": "com.harmony.utils", "vendor": "example", "versionCode": 1000003, "versionName": "1.0.3", "icon": "$media:app_icon", "label": "$string:app_name" } }下面是对AppScope/app.json5文件中各个字段的详细解释:bundleName: "com.harmony.utils"这是应用程序的唯一标识符(包名),用于在系统中区分不同的应用。通常,这个名称会遵循反向域名格式,以确保全局唯一性。vendor: "example"表示应用的供应商或开发者名称。这个信息主要用于管理和识别应用的来源。versionCode: 1000003这是一个整数,表示应用的版本号,用于区分应用的不同版本。每次发布新版本时,这个值应该增加,以确保系统能够正确识别并更新应用。versionName: "1.0.3"这是一个字符串,表示应用的版本名称,通常用于向用户展示。它可以是任何易于理解的格式,比如“1.0.3”、“2.1 Beta”等。icon: "$media:app_icon"指定应用的图标。这里使用了$media:前缀,表示图标资源位于应用的媒体资源目录下,并且app_icon是资源文件的名称(不包含文件扩展名)。label: "$string:app_name"指定应用的标签或名称,这个名称会显示在设备的应用列表中。这里使用了$string:前缀,表示这个名称是一个字符串资源,app_name是在应用的字符串资源文件中定义的资源名称。app.json5文件采用JSON5格式,这是一种JSON的超集,允许一些JavaScript语法特性,如尾随逗号、注释等,这使得配置文件更加易读和易维护。AppScope/app.json5文件是鸿蒙ArkTs项目中非常重要的配置文件,它包含了应用的基本信息,如包名、版本、图标和名称等,这些信息对于应用的构建、打包和分发都是必不可少的。
上滑加载中
推荐直播
-
OpenHarmony应用开发之网络数据请求与数据解析
2025/01/16 周四 19:00-20:30
华为开发者布道师、南京师范大学泰州学院副教授,硕士研究生导师,开放原子教育银牌认证讲师
科技浪潮中,鸿蒙生态强势崛起,OpenHarmony开启智能终端无限可能。当下,其原生应用开发适配潜力巨大,终端设备已广泛融入生活各场景,从家居到办公、穿戴至车载。 现在,机会敲门!我们的直播聚焦OpenHarmony关键的网络数据请求与解析,抛开晦涩理论,用真实案例带你掌握数据访问接口,轻松应对复杂网络请求、精准解析Json与Xml数据。参与直播,为开发鸿蒙App夯实基础,抢占科技新高地,别错过!
回顾中 -
Ascend C高层API设计原理与实现系列
2025/01/17 周五 15:30-17:00
Ascend C 技术专家
以LayerNorm算子开发为例,讲解开箱即用的Ascend C高层API
回顾中
热门标签