HarmonyOS 鸿蒙Next #技术训练营第四期# 基于HarmonyOS开发实现跨语言、跨UI,APP内部跳转

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next #技术训练营第四期# 基于HarmonyOS开发实现跨语言、跨UI,APP内部跳转 鸿蒙的开发使用多种语言,都能够完美实现效果,但是存在就有一定的意义,JSUI框架更有利于页面的扩展,JAVAUI更有利于逻辑的处理,从这些有点上来讲,组合起来更有利于一款使用应用的开发,JSUI用来界面渲染,暂时效果,更有利于界面的优化,Java端进行逻辑端控制。这样的开发在官网有JSCALLJAVA模板可以进行参考,这里知识顺带的提一下,并不是本文的分享重点。

对于一个完整的JavaUI项目或者是一个完整的JSUI项目,将两个项目融合在一起,各自执行相应的功能,实现在APP应用中的多个HAP包之间的交互。总所周知,一个APP包只能够拥有一个entry的入口项目,此外还可以有一个或者多个的feature项目。这也是鸿蒙项目的解耦特性,不仅可以将UI和逻辑分开,还可以将项目模块进行分开,这种情况下就可以很友好的使用APP项目进行开发。实现一个多功能的项目,而且各自负责自己的模块,更有利于开发的协同性,进度同时进行,相互不受影响。此外对于开发之后的小模块移植到新的项目中可以直接进行导入项目即可,更加简便,方便开发,提高代码复用率。

下面的会分享APP项目中跨UI的使用过程

(本文暂时只讲解JAVA项目和JS项目,因为现在可以进行真机调试,至于Ark UI的后续会补充上来,毕竟现在只是尝鲜,最新版的手机系统也跑不起来,但是这个说法只截至发文时间,后续肯定都会支持的。)

1、创建一个Java项目或者是一个JS项目

首先创建一个JS项目基于API5(可以在真机上运行,再高版本的PAI我的手机就跑不了了),这个项目作为整个APP的入口,也就是entry属性的项目(备注:你在这里创建JAVA项目也不影响,这里只分享一种)。

在创建完成entry项目之后再创建一个feature项目,需要在刚才创建的JS项目上再新建一个Module。

选择Enpty Ability,选择其他的应该也是可以,(这里只做一个引导,不进行深入的讲解。)

这里需要格外注意一定要创建一个feature项目,因为你创建entry的话项目不报错,但是项目之间也无法进行交互,因为一个项目只能运行一个entry。官方给的解释,看下方的图片(出自华为认证,学员用书,需要的朋友可以自行去官网进行下载)。

因为是直接再项目上新建一个feature项目,所以编辑器自动给我们进行了配置,如果是自己引入外来的包就需要进行配置,在项目级的settings.gradle里面加上如下的配置即可

项目配置完成之后还需要进行代码的编写,实现项目的交互。

我的初始入口是JS项目,所以需要有一个JS到JAVA的通讯,这里就不再赘述,直接默认JS到JAVA侧的请求已近完成,然后开始进行项目跳转,在JS的main里面首先需要对跳转的Ability进行一个注册

注册主要是保证能够下面的属性复制,最主要的是获取到content对象,这也是跳转的重要一个不走

在获取到content对象之后,通过mContext.getUITaskDispatcher().asyncDispatch(()->{})获取主线程的UI,然后通过配置属性,主线程UI进行一个startAbility,然后还要不忘记关闭现在的线程,如果还需要返回,可以不关闭现在的UI,进入到background状态,这部分的可以参考学员用书的生命周期部分。

在这部分完成之后就需要基本上就可以正常跳转了,需要注意的是两个项目的APP名称必须一致

其他的暂时也不知道要注意什么,还有就是安装运行到手机的过程,需要进行一下配置

在配置完之后,需要进行签名配置,官网有很详细的教程,可以直接参考。然后run就可以了

有些朋友想要手动安装hap包到手机上,那就需要同时对打包后的两个hap包进行安装。我的分享到这里就结束了,如果你还是不清楚怎么做的,可以与我联系,交流群421056693

本文的主要思想来资源gitee开源项目。

本文为原创作品,如有错误的地方欢迎指正。


更多关于HarmonyOS 鸿蒙Next #技术训练营第四期# 基于HarmonyOS开发实现跨语言、跨UI,APP内部跳转的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

这是新大佬吗,没咋见过

更多关于HarmonyOS 鸿蒙Next #技术训练营第四期# 基于HarmonyOS开发实现跨语言、跨UI,APP内部跳转的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


楼主是官方人员吗,原创文章水平针不戳

针对帖子标题“HarmonyOS 鸿蒙Next #技术训练营第四期# 基于HarmonyOS开发实现跨语言、跨UI,APP内部跳转”的问题,以下是专业且简洁的回答:

在HarmonyOS中,实现跨语言、跨UI以及APP内部跳转的功能,主要依赖于HarmonyOS提供的系统能力和API。

跨语言支持方面,HarmonyOS原生支持多种编程语言进行开发,开发者可以根据项目需求选择合适的语言。在HarmonyOS应用中,不同语言编写的模块可以通过接口或服务进行通信,实现跨语言的功能集成。

跨UI方面,HarmonyOS提供了丰富的UI组件和布局方式,开发者可以灵活使用这些组件来构建不同风格的界面。同时,HarmonyOS支持界面动态加载和切换,使得应用可以在运行时根据需要加载不同的UI界面。

APP内部跳转则通常通过Intent机制实现。在HarmonyOS中,Intent用于在不同组件或页面之间进行数据传递和跳转控制。开发者可以定义Intent并设置目标组件或页面,然后启动Intent以实现跳转。

请注意,以上内容是基于HarmonyOS的一般性描述,具体实现可能因项目需求和版本差异而有所不同。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部