一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种在鸿蒙兼容运行安卓H5的方法、设备、存储介质与流程

2022-03-02 00:04:37 来源:中国专利 TAG:

一种在鸿蒙兼容运行安卓h5的方法、设备、存储介质
技术领域
1.本技术涉及鸿蒙应用开发领域,尤其涉及一种在鸿蒙兼容运行安卓h5的方法、设备、存储介质。


背景技术:

2.鸿蒙系统作为新兴国产系统,从发布以来备受国内关注。鸿蒙与安卓一样基于linux内核研发,鸿蒙系统与安卓系统能够最大程度地兼容,初衷是对标安卓系统,不是超越、颠覆安卓,而是与安卓长期并存,由于兼容,两者的生态具有高度相似性。
3.虽然鸿蒙能够最大程度的兼容安卓应用,但并非全部。例如,在安卓android系统上以webview作为主要交互媒介的h5应用,通常会自定义通信。但当安卓上的h5应用若想在鸿蒙上运行,需要修改h5的底层代码,否则就无法在鸿蒙上运行。
4.为了减少对h5的重复开发,当鸿蒙系统开发以webview为交互媒介的应用的时候,需要针对于鸿蒙原生应用,开发一套可以在鸿蒙上兼容运行android系统上的h5的方案。


技术实现要素:

5.本技术提供了一种在鸿蒙兼容运行安卓h5的方法,解决了鸿蒙无法兼容运行安卓h5,需要修改h5底层逻辑而导致的繁琐、耗时耗力的技术问题。
6.一种在鸿蒙兼容运行安卓h5的方法,所述鸿蒙系统中安装数据处理器和跨系统的数据解析器,应用于鸿蒙端hap与h5的数据交互过程中,包括:
7.当鸿蒙端hap接收来自h5应用的第一业务数据时,通过所述数据解析器将所述第一业务数据解析成标准数据;其中,所述数据解析器与安卓系统采用相同的解析逻辑;
8.然后通过所述数据解析器将所述标准数据解析成第二业务数据;
9.当所述鸿蒙端hap向所述h5应用发送第二业务数据时,将所述第二业务数据通过所述数据解析器解析成标准数据,再将所述标准数据转换成第一业务数据发送到所述h5应用。
10.在本技术的一种实施例中,所述当鸿蒙端hap接收来自h5应用的第一业务数据时,具体包括:鸿蒙端hap根据是否需要加载统一资源定位符isneedloadurl指令拦截资源请求,获取请求统一资源定位符url;对所述请求url进行编码处理,获取原始的url字符串;根据所述原始的url字符串的数据结构,确定所述第一业务数据的处理方式。
11.在本技术的一种实施例中,所述鸿蒙系统中还安装有数据处理器;根据所述原始的url字符串的数据结构,确定所述第一业务数据的处理方式,具体包括:通过所述跨系统的数据解析器分析所述url字符串的数据结构,根据所述数据结构判断是需要处理的还是正常重载的url;若是需要处理的,则通过所述数据解析器解析成标准数据,然后将所述标准数据转换成第二业务数据;将所述第二业务数据送入处理器中;若是正常重载的url,则通过鸿蒙系统的网页视图webview直接加载h5。
12.在本技术的一种实施例中,在鸿蒙端hap与所述h5应用进行数据交互前,所述方法
还包括:开启应用权限,以使所述鸿蒙系统能够支持业务处理;需要开启的应用权限包括,安全模式securitymode,图像许可imagepermit,数据能力dataability,定位许可locationpermit,网页存储许可webstoragepremit;其中,设置securitymode为全允许,以支持使用http协议、https协议的h5链接。
13.在本技术的一种实施例中,在鸿蒙端hap与所述h5应用进行数据交互的过程中,所述方法还包括:当webview加载h5完成后,触发onpageloaded指令时,将rawfile文件夹下的js文件,通过webview的load指令,加载给所述h5应用,以用于构建jsbridge的通信。
14.在本技术的一种实施例中,在鸿蒙端hap与所述h5应用进行数据交互前,所述方法还包括:将鸿蒙系统webview通过网页配置webconfig开启对javascript的支持,以使js文件正常加载。
15.在本技术的一种实施例中,在鸿蒙端hap与所述h5应用进行数据交互前,所述方法还包括:通过设置useragent标识,对进行数据交互的系统进行标记,从而使所访问的网站根据浏览器的类型不同显示不同排版。
16.一种在鸿蒙兼容运行安卓h5的设备,其特征在于,包括:
17.至少一个处理器;以及,
18.与所述至少一个处理器通信连接的存储器;其中,
19.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
20.当鸿蒙端hap接收来自h5应用的第一业务数据时,通过所述数据解析器将所述第一业务数据解析成标准数据;其中,所述数据解析器与安卓系统采用相同的解析逻辑;
21.然后通过所述数据解析器将所述标准数据解析成第二业务数据;
22.当所述鸿蒙端hap向所述h5应用发送第二业务数据时,将所述第二业务数据通过所述数据解析器解析成标准数据,再将所述标准数据转换成第一业务数据发送到所述h5应用。
23.在本技术的一种实施例中,所述至少一个处理器还用于:鸿蒙端hap根据是否需要加载统一资源定位符isneedloadurl指令拦截资源请求,获取请求统一资源定位符url;对所述请求url进行编码处理,获取原始的url字符串;根据所述原始的url字符串的数据结构,确定所述第一业务数据的处理方式;将处理完成的所述第一业务数据传送到所述鸿蒙端hap。
24.一种非易失性存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
25.当鸿蒙端hap接收来自h5应用的第一业务数据时,通过所述数据解析器将所述第一业务数据解析成标准数据;其中,所述数据解析器与安卓系统采用相同的解析逻辑;
26.然后通过所述数据解析器将所述标准数据解析成第二业务数据;
27.当所述鸿蒙端hap向所述h5应用发送第二业务数据时,将所述第二业务数据通过所述数据解析器解析成标准数据,再将所述标准数据转换成第一业务数据发送到所述h5应用。
28.本技术提供了一种在鸿蒙兼容运行安卓h5的方法,至少包括以下有益效果:通过将每个h5都需要加载的交互js文件,放到鸿蒙端,减少了资源加载的耗时和流量消耗;通过
数据解析器将业务数据转换为标准化的数据结构,解析出标准数据,再通过系统化的数据处理器处理各系统上对应的业务实现,实现h5跨系统交互的处理。通过h5的自定义通信,实现了鸿蒙原生应用与h5的双向通信,有效补充了原生webview无法单独实现的兼容运行安卓h5的功能。
附图说明
29.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
30.图1为本技术实施例提供的一种在鸿蒙兼容运行安卓h5的方法的步骤示意图;
31.图2为本技术实施例提供的一种在鸿蒙兼容运行安卓h5的设备组成示意图。
具体实施方式
32.为了使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例对本技术进行清楚、完整的描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.在现有技术中,鸿蒙系统作为新兴国产系统,从发布以来备受国内关注。作为一款完全国产化的分布式系统,虽然可以兼容运行安卓android应用。但是不管基于何种考虑,都需要开发完全基于鸿蒙系统应用程序编程接口(application programming interface,api)的鸿蒙应用。
34.在android系统上以网页视图webview作为主要交互媒介的第五版超文本标记语言(html5,h5)应用,为了便于与鸿蒙原生应用交互,通常会自定义通信。当在鸿蒙系统开发以webview为交互媒介的应用的时候,为了减少h5的重复开发,需要针对于鸿蒙原生应用,开发一套可以在鸿蒙上兼容运行android系统上的h5且可按照自定义标准通信的混合开发架构。这样就可以使能够在android上运行的h5应用不用修改底层代码也可以在鸿蒙上运行。
35.通过将每个h5都需要加载的交互js文件,放到鸿蒙端,减少了资源加载的耗时和流量消耗;通过数据解析器将业务数据转换为标准化的数据结构,解析出标准数据,再通过系统化的数据处理器处理各系统上对应的业务实现,实现h5跨系统交互的处理。通过h5的自定义通信,实现了鸿蒙原生应用与h5的双向通信,有效补充了原生webview无法单独实现的兼容运行安卓h5的功能。下面进行具体说明。
36.在本技术的一种实施例中,本技术提供的一种在鸿蒙兼容运行安卓h5的方法,通过基于鸿蒙webview的混合开发架构实现,混合开发架构鸿蒙webview支持javascript,内置用于支持双向通信的js文件,框架包含一个跨系统的标准数据解析器,一个鸿蒙系统的数据处理器。
37.数据解析器负责将h5传递给鸿蒙原生应用的标准数据,解析出业务数据,然后将业务数据传递给鸿蒙端鸿蒙能力包(harmonyos ability package,hap)的数据处理器。或者将鸿蒙hap的数据处理器处理后的数据,转换成标准通信数据,然后传递或回调给h5应用。
38.鸿蒙系统的数据处理器,负责将数据解析器解析出来的业务数据,按照业务规则处理。处理完后,若无需回调,则不再处理;若需要回调数据给h5,则将回调的数据传递给解析器后,再回调给h5。
39.在鸿蒙端hap与h5应用进行数据交互前,需要进行以下设置:
40.将鸿蒙系统webview通过网页配置webconfig指令开启对javascript的支持,以使js文件正常加载,确保h5应用与鸿蒙端hap的正常通信。
41.由于需要保障h5应用跨系统可正常交互,因此,数据解析器同android系统采用相同的逻辑,保证同一数据结构,可以在两个系统兼容使用。
42.设置用户代理useragent标识,对进行数据交互的系统进行标记,以确保能够识别不同的系统,从而使所访问的网站根据浏览器的类型不同显示不同排版。
43.开启鸿蒙系统的应用权限,包括通过webconfig设置安全模式securitymode为全允许webconfig.security_allow,以便于webview加载超文本传输协议(hypertext transfer protocol,http)的链接或者加载http的资源,支持使用http协议、超文本传输安全协议(hyper text transfer protocol secure,https)的h5链接。
44.通过webconfig设置图像许可imagepermit,数据能力dataability,定位许可locationpermit,网页存储许可webstoragepremit等应用权限,以使鸿蒙系统能够支持业务处理。
45.图1为本技术实施例提供的一种在鸿蒙兼容运行安卓h5的方法的步骤示意图,可以包括以下步骤:
46.s101:当鸿蒙端hap接收来自h5应用的第一业务数据时,通过数据解析器将第一业务数据解析成标准数据;其中,数据解析器与安卓系统采用相同的解析逻辑。
47.在本技术的一种实施例中,第一业务数据是在鸿蒙端hap处理的业务数据,第二业务数据是在h5应用上处理的业务数据,由于h5应用和鸿蒙端hap无法直接处理对方的数据,所以要将双方业务数据转换成标准数据后再转换成双方可以处理的业务数据。由此便实现了h5应用和鸿蒙系统的兼容。
48.在鸿蒙端hap与h5应用进行数据交互的过程中,当webview加载h5完成后,触发onpageloaded指令时,将rawfile文件夹下的js文件,通过webview的load指令,加载给h5应用,以用于构建jsbridge的通信。
49.当jsbridge通信构建完成后,鸿蒙端hap根据是否需要加载统一资源定位符isneedloadurl指令拦截资源请求,获取请求统一资源定位符url;然后对请求url进行编码处理,获取原始的url字符串;根据原始的url字符串的数据结构,确定第一业务数据的处理方式。
50.当获取到原始的url字符串后,通过跨系统的数据解析器分析url字符串的数据结构,根据数据结构判断是需要处理的还是正常重载的url;根据确定的所述处理方式处理所述第一业务数据若是需要处理的url,比如“icity://return/{时间戳}/{校验码}/编码后的数据”,则通过数据解析器解析成标准数据,然后将标准数据转换成第二业务数据;将第二业务数据送入处理器中;若是正常重载的url,例如“https://www.****.com”,则交给父类处理,即由鸿蒙系统的网页视图webview直接加载h5。这样h5通过自定义通信,将第一业务数据通过数据解析器转换成标准数据传递到了鸿蒙端hap。
51.s102:然后通过数据解析器将标准数据解析成第二业务数据。
52.s103:当鸿蒙端hap向h5应用发送第二业务数据时,将第二业务数据通过数据解析器解析成标准数据,再将标准数据转换成第一业务数据发送到h5应用。
53.具体地,基于鸿蒙webview混合开发架构,在鸿蒙端hap需要传递第二业务数据给h5的时候,首先需要将传递的第二业务数据,传递给数据解析器,将第二业务所述转换成标准数据,然后通过自定义通信传递给h5。
54.以上为本技术实施例提供的一种在鸿蒙兼容运行安卓h5的方法,基于同样的发明思路,本技术实施例还提供了相应的一种在鸿蒙兼容运行安卓h5的设备,如图2所示。
55.本实施例提供了一种在鸿蒙兼容运行安卓h5的设备,包括:
56.至少一个处理器;以及,
57.与至少一个处理器通信连接的存储器;其中,
58.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
59.当鸿蒙端hap接收来自h5应用的第一业务数据时,通过所述数据解析器将所述第一业务数据解析成标准数据;其中,所述数据解析器与安卓系统采用相同的解析逻辑;
60.然后通过所述数据解析器将所述标准数据解析成第二业务数据;
61.当所述鸿蒙端hap向所述h5应用发送第二业务数据时,将所述第二业务数据通过所述数据解析器解析成标准数据,再将所述标准数据转换成第一业务数据发送到所述h5应用。
62.在本技术的一种实施例中,所述至少一个处理器还用于:鸿蒙端hap根据是否需要加载统一资源定位符isneedloadurl指令拦截资源请求,获取请求统一资源定位符url;对所述请求url进行编码处理,获取原始的url字符串;根据所述原始的url字符串的数据结构,确定所述第一业务数据的处理方式;将处理完成的所述第一业务数据传送到所述鸿蒙端hap。
63.基于同样的思路,本技术的一些实施例还提供了上述方法对应的介质。
64.本技术的一些实施例提供的一种在鸿蒙兼容运行安卓h5的存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
65.当鸿蒙端hap接收来自h5应用的第一业务数据时,通过所述数据解析器将所述第一业务数据解析成标准数据;其中,所述数据解析器与安卓系统采用相同的解析逻辑;
66.然后通过所述数据解析器将所述标准数据解析成第二业务数据;
67.当所述鸿蒙端hap向所述h5应用发送第二业务数据时,将所述第二业务数据通过所述数据解析器解析成标准数据,再将所述标准数据转换成第一业务数据发送到所述h5应用。
68.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
69.本技术实施例提供的方法和介质与方法是一一对应的,因此,方法和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说
明,因此,这里不再赘述方法和介质的有益技术效果。
70.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程方法商品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程方法商品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程方法商品或者方法中还存在另外的相同要素。
71.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献