CN112559928B - 基于混合开发的页面处理方法、装置、电子设备及存储介质 - Google Patents
基于混合开发的页面处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112559928B CN112559928B CN202011556625.8A CN202011556625A CN112559928B CN 112559928 B CN112559928 B CN 112559928B CN 202011556625 A CN202011556625 A CN 202011556625A CN 112559928 B CN112559928 B CN 112559928B
- Authority
- CN
- China
- Prior art keywords
- native
- native function
- page
- function
- user operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种基于混合开发的页面处理方法、装置、电子设备及存储介质,涉及iOS开发技术领域。该方法包括:通过应用程序入口获取用户操作数据;通过软件开发工具包SDK调用初始化接口对所述用户操作数据进行初始化,以获得初始化结果;以WKWebView组件作为容器,将所述初始化结果内嵌入超文本标记语言HTML页面;显示所述HTML页面。该方法通过SDK调用接口,并采用WKWebView进行内容嵌入完成HTML页面显示,简化了HTML互动开发的步骤,提高了运行效率。
Description
技术领域
本申请涉及iOS开发技术领域,具体而言,涉及一种基于混合开发的页面处理方法、装置、电子设备及存储介质。
背景技术
在当前iOS开发中,HTML(HyperText Markup Language)5与原生交互主要采用官方提供的系统动态库,即通过导入JavaScriptCore库,在UIWebView中注入JavaScript对象,在初始化JSContext后获取对应的上下文。这样就构建了一个简单的JSCBridge实现了功能互通,但是缺点也很明显,对OC端接口暴露时机有硬性要求,并且js执行OC端的代码始终是异步,其开发步骤较为复杂,运行效率较低。
发明内容
有鉴于此,本申请实施例的目的在于提供一种基于混合开发的页面处理方法、装置、电子设备及存储介质,以改善现有技术中存在的开发步骤较为复杂,运行效率较低的问题。
本申请实施例提供了一种基于混合开发的页面处理方法,所述方法包括:通过应用程序入口获取用户操作数据;通过软件开发工具包SDK调用初始化接口对所述用户操作数据进行初始化,以获得初始化结果;以WKWebView组件作为容器,将所述初始化结果内嵌入超文本标记语言HTML页面;显示所述HTML页面。
在上述实现方式中,通过SDK调用接口,并采用WKWebView进行内容嵌入完成HTML页面显示,简化了HTML互动开发的步骤,提高了运行效率。
可选地,所述初始化处理包括:对所述用户操作数据进行逻辑跳转处理,获得逻辑跳转处理结果;基于所述逻辑跳转处理结果拼装完整统一资源定位符URL链接,将所述URL链接作为所述初始化结果。
在上述实现方式中,对用户操作数据进行逻辑跳转处理后拼装完整URL链接,从而能够基于该完整URL链接进行资源调用和页面生成。
可选地,所述逻辑跳转处理包括域名组装、跳转类型确定和参数数据加密。
在上述实现方式中,完成域名组装、跳转类型确定和参数数据加密,能够保证逻辑跳转的准确性以及数据安全性。
可选地,在所述显示所述HTML页面之前,所述方法还包括:在用户操作需要调用系统原生功能时,调用所述SDK提供的原生功能接口执行所述系统原生功能,所述原生功能接口是在系统原生的公共调用方法上功能进行系统封装获得;通过回调接收所述系统原生功能执行后获得的原生功能处理数据;所述显示所述HTML页面,包括:通过所述HTML页面对所述原生功能处理数据进行显示。
在上述实现方式中,通过SDK提供的原生功能接口调用系统原生功能,完成原生功能与HTML页面的交互,从而将原生功能获取的数据或处理结果在HTML页面上进行显示,实现了高效稳定的iOS与HTML页面的交互。
可选地,在用户操作需要调用系统原生功能时,调用所述SDK提供的原生功能接口执行所述系统原生功能之前,所述方法还包括:在所述HTML页面使用Window创建应用程序编程接口API监听器;通过所述API监听器确定所述用户操作是否需要调用所述系统原生功能。
在上述实现方式中,通过API监听器进行系统原生功能的调用确认,从而能够在用户需要使用原生功能时触发原生功能的调用,提高了原生功能调用的稳定性和效率。
可选地,所述调用所述SDK提供的原生功能接口执行所述系统原生功能,包括:通过所述API监听器确定需要调用的所述原生功能的原生方法名、参数和回调;基于所述原生方法名、所述参数和所述回调唤醒对应的所述API监听器;通过所述API监听器基于所述原生方法名、所述参数和所述回调触发所述原生功能接口。
在上述实现方式中,基于原生方法名、参数和回调对API监听器进行唤醒,以使API监听器调用对应的原生功能,保证了原生功能调用的准确性和效率。
可选地,所述基于所述原生方法名、所述参数和所述回调唤醒对应的所述API监听器,包括:将所述原生方法名、所述参数和所述回调传入postMessage函数,以唤醒对应的所述API监听器。
在上述实现方式中,通过postMessage函数对API监听器进行唤醒,允许来自不同源的脚本采用异步方式进行有效的通信,可以实现跨文本文档、多窗口、跨域消息传递,提高了API监听器唤醒的成功率和兼容性。
本申请实施例还提供了一种基于混合开发的页面处理装置,所述装置包括:操作数据获取模块,用于通过应用程序入口获取用户操作数据;初始化模块,用于通过软件开发工具包SDK调用初始化接口对所述用户操作数据进行初始化,以获得初始化结果;嵌入模块,用于以WKWebView组件作为容器,将所述初始化结果内嵌入超文本标记语言HTML页面;页面显示模块,用于显示所述HTML页面。
在上述实现方式中,通过SDK调用接口,并采用WKWebView进行内容嵌入完成HTML页面显示,简化了HTML互动开发的步骤,提高了运行效率。
可选地,所述初始化模块具体用于:对所述用户操作数据进行逻辑跳转处理,获得逻辑跳转处理结果;基于所述逻辑跳转处理结果拼装完整统一资源定位符URL链接,将所述URL链接作为所述初始化结果。
在上述实现方式中,对用户操作数据进行逻辑跳转处理后拼装完整URL链接,从而能够基于该完整URL链接进行资源调用和页面生成。
可选地,所述逻辑跳转处理包括域名组装、跳转类型确定和参数数据加密。
在上述实现方式中,完成域名组装、跳转类型确定和参数数据加密,能够保证逻辑跳转的准确性以及数据安全性。
可选地,所述基于混合开发的页面处理装置还包括:原生调用模块,用于在用户操作需要调用系统原生功能时,调用所述SDK提供的原生功能接口执行所述系统原生功能,所述原生功能接口是在系统原生的公共调用方法上功能进行系统封装获得;通过回调接收所述系统原生功能执行后获得的原生功能处理数据;所述页面显示模块还用于通过所述HTML页面对所述原生功能处理数据进行显示。
在上述实现方式中,通过SDK提供的原生功能接口调用系统原生功能,完成原生功能与HTML页面的交互,从而将原生功能获取的数据或处理结果在HTML页面上进行显示,实现了高效稳定的iOS与HTML页面的交互。
可选地,所述基于混合开发的页面处理装置还包括:监听模块,用于在所述HTML页面使用Window创建应用程序编程接口API监听器;通过所述API监听器确定所述用户操作是否需要调用所述系统原生功能。
在上述实现方式中,通过API监听器进行系统原生功能的调用确认,从而能够在用户需要使用原生功能时触发原生功能的调用,提高了原生功能调用的稳定性和效率。
可选地,所述监听模块具体用于:通过所述API监听器确定需要调用的所述原生功能的原生方法名、参数和回调;基于所述原生方法名、所述参数和所述回调唤醒对应的所述API监听器;通过所述API监听器基于所述原生方法名、所述参数和所述回调触发所述原生功能接口。
在上述实现方式中,基于原生方法名、参数和回调对API监听器进行唤醒,以使API监听器调用对应的原生功能,保证了原生功能调用的准确性和效率。
可选地,所述监听模块具体用于:将所述原生方法名、所述参数和所述回调传入postMessage函数,以唤醒对应的所述API监听器。
在上述实现方式中,通过postMessage函数对API监听器进行唤醒,允许来自不同源的脚本采用异步方式进行有效的通信,可以实现跨文本文档、多窗口、跨域消息传递,提高了API监听器唤醒的成功率和兼容性。
本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种基于混合开发的页面处理方法的流程示意图。
图2为本申请实施例提供的一种原生功能调用步骤的流程示意图。
图3为本申请实施例提供的一种原生功能接口调用步骤的流程示意图。
图4为本申请实施例提供的一种基于混合开发的页面处理装置的模块示意图。
图标:20-基于混合开发的页面处理装置;21-操作数据获取模块;22-初始化模块;23-嵌入模块;24-页面显示模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
经本申请人研究发现,随着iOS生态中APP(Application,应用程序)开发的不断衍生发展,主流的开发模式形成了以下三种:Native App、Web App、Hybrid App,但是相互之间又各有优缺点。
首先Native App在用户体验和交互上给人的感觉都是最好的,但是开发、更新、维护的周期都太长,当企业尚处于尝试和摸索期,无法满足在短时间内快速的推出不同产品、功能来适应市场的需求和变化。Native App对于有专业开发团队的互联网公司而言推陈出新都是个难题,更不要说在企业中的应用。无论是企业自己开发还是外包都会面临时间成本、稳定性、体验不能满足要求的巨大压力。
随着HTML5技术的一时兴起,给Web App注入了许多新的生机。虽说Web App开发和维护成本都很低,但是Web App目前的功能不但无法和Native App媲美,在用户体验上更是比较差的。很多企业进行了Web App的尝试,但是投入和回报不成比例,用户也不买账,不人性化的体验与流程导致大量用户流失。
Hybrid App(混合模式移动应用)兼具了“Native App良好用户交互体验优势”和“Web App跨平台开发的优势”,目前市场上一些主流移动应用都是基于Hybrid App的方式开发。Hybrid App通常都是基于第三方的跨平台移动应用引擎框架进行开发,比较知名的有PhoneGap、Titanium和AppCan这些引擎框架,调用封装的底层功能如传感器、照相机、通讯录等。因为使用了浏览器技术,所以Hybrid App具有跨平台的特性,且开发成本和WebApp接近,开发效率也是远高于Native App。
综上所述,Hybrid混合开发模式已经成为企业移动开发的趋势,眼前还有很多企业在为移动信息化的途径和方向而苦恼。在投入、用户体验、维护成本等方面综合考虑,Hybrid App已经被众多企业所认可。
但是现有的Hybrid APP开发模式在进行HTML5互动数据处理和显示时,仍然存在开发较为复杂,运行稳定性和效率较差的问题。因此本申请实施例为了解决上述问题提供了一种基于混合开发的页面处理方法,通过封装WKWebview和HTML5之间的交互方法,提供了许多高效稳定的原生交互应用程序接口(Application Programming Interface,API),从而简化了开发步骤,提高了其运行稳定性和效率。
请参考图1,图1为本申请实施例提供的一种基于混合开发的页面处理方法的流程示意图。该基于混合开发的页面处理方法的具体步骤可以如下:
步骤S12:通过应用程序入口获取用户操作数据。
可选地,本实施例可以根据开发文档将SDK接入到应用程序中,从而使应用程序具有与SDK通信的应用程序入口。
其中,SDK(Software Development Kit)即软件开发工具包,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,它可以简单的为某个程序设计语言提供API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
本实施例中的SDK时连通iOS系统原生应用程序和HTML5之间的一个中间工具,提供一个或多个应用程序调用接口。本SDK开发语言为Object-C,通过苹果官方提供的开发工具(Xcode)打包生成静态库(.framework)。Native开发者通过提供的开发文档,直接接入即可使用,无需再做原生功能和H5交互功能方面的额外开发。
可选地,本实施例中的步骤S12可以视为SDK跳转入口的初始化,例如采用#import<YHBSDK/YHBSDK.h>在跳转控制器页面引入SDK头文件YHBSDK.h,采用YHBHomePageViewController*vc=[YHBHomePageViewController setupPageVC]原生APP中需要跳转YHB页面的地方初始化YHBHomePageViewController。
步骤S14:通过SDK调用初始化接口对用户操作数据进行初始化,以获得初始化结果。
可选地,本实施例中可以采用NSString*host=@"xxxx"在进行逻辑跳转处理前需要准备跳转的域名参数。
具体地,为了APP从应用程序入口进入SDK后能够顺利进入后续WKWebView组件,上述初始化的处理内容可以包括:对用户操作数据进行逻辑跳转处理,获得逻辑跳转处理结果;基于逻辑跳转处理结果拼装完整统一资源定位符URL链接,将URL链接作为初始化结果。
可选地,本实施例中的逻辑跳转处理可以包括域名组装、跳转类型确定和参数数据加密。应当注意的是,上述逻辑跳转处理需按照域名组装、跳转类型确定和参数数据加密的顺序依次进行。
上述域名组装为在iOS中对域名进行封装。可选地,域名组装前是用户传入的host(表示能够同其他机器互相访问的本地计算机)域名地址,最后完整的链接是在用户传入了一些其他自定义信息(如自定义的token)后,经过加密有得到的字符串再拼接在host域名地址后面,形成完整的跳转链接。
上述跳转类型为iOS中WKWebView页面的跳转类型判定,例如应用程序A跳转至应用程序B完成预设操作后再跳转回应用程序A。可选地,本实施例中提供了两种跳转方式,分别为token方式和ticket方式。其中token和ticket方式都是采用RSA对称加密生成的结果,开发者需要在跳转SDK前进行加密处理,并按开发文档传入SDK中。其中加密使用的公钥和私钥都是开发者自行生成,在进入HTML5获取到数据后进行解密处理。token方式和ticket方式的区别在于是否携带需要特殊数据,如携带手机号参数等,SDK会针对不同的跳转方式做区别处理。
示例性的,基于token的跳转方式的具体实现可以如下:
枚举类型RequestToken;
token(string类型);
[vc setupWebWithType:RequestToken hostStr:hostreqStr:token extra:extra]。
示例性的,基于ticket的跳转方式的具体实现可以如下:
枚举类型RequestTicket;
ticket(string类型);
[vc setupWebWithType:RequestTicket hostStr:hostreqStr:ticket extra:extra]。
上述参数数据加密可以选用哈希算法、对称加密算法或非对称加密算法等。可选地,SDK会对传入的额外参数做一次base64加密,去除明文参数,保证数据的安全性。
其中,额外数据可以是基于extra字典的数据,例如@{@"channel":@"",渠道号string,@"phone":@"",用户手机号string}。
示例性的,经过初始化处理后获得的链接格式host+加密参数+token(或ticket),如https:www.yhb-node-xwfintech.com/?signData=xxxxxx#/?Token=xxxx。
可选地,本实施例中的初始化处理还可以包括SDK内置页面的跳转设置,例如采用[self.navigationController pushViewController:vc animated:YES]设置导航栏跳转,采用vc.modalPresentationStyle=0;[self presentViewCont roller:vc animated:YEScompletion:nil]设置模态跳转。
步骤S16:以WKWebView组件作为容器,将初始化结果内嵌入HTML页面。
WKWebView组件为用来加载HTML网页的控件,其支持HTML5的特性,主要包括有两个delegate,WKUIDelegate和WKNavigationDelegate,WKNavigationDelegate主要处理一些跳转、加载处理操作,WKUIDelegate主要处理JS脚本,确认框,警告框等。
可选地,本实施例中HTML页面可以是HTML5。
由于在当前iOS开发中,HTML5与原生交互主要采用官方提供的系统动态库,即通过导入JavaScriptCore库,在UIWebView中注入JavaScript对象,在初始化JSContext后获取对应的上下文。这样就构建了一个简单的JSCBridge实现了功能互通,但是缺点也很明显,对OC端接口暴露时机有硬性要求,并且js执行OC端的代码始终是异步,且无法进行比较复杂的原生能力交互。现有的原生系统与H5的互动方式通常无法调用某些复杂的原生功能,混合开发的难点在于原生应用程序和Web HTML5之间的交互上,因此作为一种可选的实施方式,采用SDK开发的API调用方式可以为Web提供原生应用程序的调用,实现不同技术的互通,本实施例在进行步骤S18的HTML页面显示前,还可以对用户调用原生系统功能进行处理,请参考图2,图2为本申请实施例提供的一种原生功能调用步骤的流程示意图。
步骤S151:在用户操作需要调用系统原生功能时,调用SDK提供的原生功能接口执行系统原生功能。
上述原生功能接口是在系统原生的公共调用方法上功能进行系统封装获得,例如拍照(camera)API等。
可选地,本实施例中的原生功能接口还可以拓展使用场景,例如常用的调用摄像头的拍照API,不仅提供了自定义质量图片压缩、自定义时长视频录制等功能,还优化了无法连拍、卡顿等问题。
应当理解的是,在进行原生功能接口调用前,还需要对原生功能的调用进行监听,从而在需要调用原生功能时进行相应操作,本实施例中采用监听器进行原生功能的调用,其具体步骤可以包括:在HTML页面使用Window创建应用程序编程接口API监听器;通过API监听器确定用户操作是否需要调用系统原生功能。
上述Window具体可以是window.performance应用程序接口,其可以对网页进行数据、属性等进行监听。
示例性地,以camera功能为例,其监听者创建具体可以如下:
window["camera"]=function(res,err){
console.log("原生回调的结果:",res,err)
};
可选地,通过API监听器确定是否需要调用系统原生功能的具体步骤可以参考图3,图3为本申请实施例提供的一种原生功能接口调用步骤的流程示意图。
a.通过API监听器确定需要调用的原生功能的原生方法名、参数和回调。
b.基于原生方法名、参数和回调唤醒对应的API监听器。
具体地,将原生方法名、参数和回调传入postMessage函数,以唤醒对应的API监听器。
其中,PostMessage是Windows API中的一个常用函数,用于将一条消息放入到消息队列中。消息队列里的消息通过调用GetMessage和PeekMessage取得。因此本实施例采用其向窗口发送消息的,以便通知指定窗口需要做出相应的动作,本实施例中的相应动作即唤醒对应的API监听器。
可选地,本实施例中以拍照API为例,SDK提供的原生方法名可以包括getLocation(获取地理位置信息)、faceVerify(视频拍摄,支持自定义时长)、gyroscope(获取陀螺仪信息)、playVideo(播放视频)、playAudio(播放音频)、getSystemInfo(获取系统信息)等。
c.通过API监听器基于原生方法名、参数和回调触发原生功能接口。
示例性地,上述在Window中创建的监听者会被唤起并发送给SDK,触发API例如camera的具体实现方式可以如下:
window.webkit.messageHandlers["camera"].postMessage(option);
其中option为h5调用原生需要传入的参数字典,如{action:"start"}。
步骤S152:通过回调接收系统原生功能执行后获得的原生功能处理数据。
上述回调可以是回调函数,其核心就是回调方将本身传递给调用方,这样调用方就可以在调用完毕之后告诉回调方它想要知道的信息,本实施例中该信息即为系统原生功能执行后获得的原生功能处理数据。
步骤S18:显示HTML页面。
在未调用系统原生功能时,本步骤S18直接进行HTML5页面的正常展示,而在调用系统原生功能时,需要将通过回调接收的原生功能处理数据展示在HTML页面上。
本申请实施例利用Hybrid混合开发技术和特性,提供了许多原生和HTML5高效稳定交互的API功能。SDK借助原生WKWebView组件作为容器,内嵌想要进入的HTML5页面,实现了原生和HTML5的无障碍交互。当原生应用需要植入某个功能点时,无需再额外去实现交互方法,可以直接嵌套引入此iOS SDK,实现快速开发的目的,同时还能够进行复杂的原生能力交互。
为了配合本申请实施例提供的上述基于混合开发的页面处理方法,本申请实施例还提供了一种基于混合开发的页面处理装置20,请参考图4,图4为本申请实施例提供的一种基于混合开发的页面处理装置的模块示意图。
基于混合开发的页面处理装置20包括:
操作数据获取模块21,用于通过应用程序入口获取用户操作数据;
初始化模块22,用于通过软件开发工具包SDK调用初始化接口对用户操作数据进行初始化,以获得初始化结果;
嵌入模块23,用于以WKWebView组件作为容器,将初始化结果内嵌入超文本标记语言HTML页面;
页面显示模块24,用于显示HTML页面。
可选地,初始化模块22具体用于:对用户操作数据进行逻辑跳转处理,获得逻辑跳转处理结果;基于逻辑跳转处理结果拼装完整统一资源定位符URL链接,将URL链接作为初始化结果。
可选地,逻辑跳转处理包括域名组装、跳转类型确定和参数数据加密。
可选地,基于混合开发的页面处理装置20还包括:原生调用模块,用于在用户操作需要调用系统原生功能时,调用SDK提供的原生功能接口执行系统原生功能,原生功能接口是在系统原生的公共调用方法上功能进行系统封装获得;通过回调接收系统原生功能执行后获得的原生功能处理数据;页面显示模块还用于通过HTML页面对原生功能处理数据进行显示。
可选地,基于混合开发的页面处理装置20还包括:监听模块,用于在HTML页面使用Window创建应用程序编程接口API监听器;通过API监听器确定用户操作是否需要调用系统原生功能。
可选地,监听模块具体用于:通过API监听器确定需要调用的原生功能的原生方法名、参数和回调;基于原生方法名、参数和回调唤醒对应的API监听器;通过API监听器基于原生方法名、参数和回调触发原生功能接口。
可选地,监听模块具体用于:将原生方法名、参数和回调传入postMessage函数,以唤醒对应的API监听器。
本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的基于混合开发的页面处理方法中任一项所述方法中的步骤。
应当理解是,该电子设备可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等具有逻辑计算功能的电子设备。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行基于混合开发的页面处理方法中的步骤。
综上所述,本申请实施例提供了一种基于混合开发的页面处理方法、装置、电子设备及存储介质,所述方法包括:通过应用程序入口获取用户操作数据;通过软件开发工具包SDK调用初始化接口对所述用户操作数据进行初始化,以获得初始化结果;以WKWebView组件作为容器,将所述初始化结果内嵌入超文本标记语言HTML页面;显示所述HTML页面。
在上述实现方式中,通过SDK调用接口,并采用WKWebView进行内容嵌入完成HTML页面显示,简化了HTML互动开发的步骤,提高了运行效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种基于混合开发的页面处理方法,其特征在于,所述方法包括:
通过应用程序入口获取用户操作数据;
通过软件开发工具包SDK调用初始化接口对所述用户操作数据进行初始化,以获得初始化结果;
以WKWebView组件作为容器,将所述初始化结果内嵌入超文本标记语言HTML页面;
显示所述HTML页面;
在所述显示所述HTML页面之前,所述方法还包括:
在用户操作需要调用系统原生功能时,调用所述SDK提供的原生功能接口执行所述系统原生功能,所述原生功能接口是在系统原生的公共调用方法上功能进行系统封装获得;
通过回调接收所述系统原生功能执行后获得的原生功能处理数据;
所述显示所述HTML页面,包括:
通过所述HTML页面对所述原生功能处理数据进行显示。
2.根据权利要求1所述的方法,其特征在于,所述初始化处理包括:
对所述用户操作数据进行逻辑跳转处理,获得逻辑跳转处理结果;
基于所述逻辑跳转处理结果拼装完整统一资源定位符URL链接,将所述URL链接作为所述初始化结果。
3.根据权利要求2所述的方法,其特征在于,所述逻辑跳转处理包括域名组装、跳转类型确定和参数数据加密。
4.根据权利要求1所述的方法,其特征在于,在用户操作需要调用系统原生功能时,调用所述SDK提供的原生功能接口执行所述系统原生功能之前,所述方法还包括:
在所述HTML页面使用Window创建应用程序编程接口API监听器;
通过所述API监听器确定所述用户操作是否需要调用所述系统原生功能。
5.根据权利要求4所述的方法,其特征在于,所述调用所述SDK提供的原生功能接口执行所述系统原生功能,包括:
通过所述API监听器确定需要调用的所述原生功能的原生方法名、参数和回调;
基于所述原生方法名、所述参数和所述回调唤醒对应的所述API监听器;
通过所述API监听器基于所述原生方法名、所述参数和所述回调触发所述原生功能接口。
6.根据权利要求5所述的方法,其特征在于,所述基于所述原生方法名、所述参数和所述回调唤醒对应的所述API监听器,包括:
将所述原生方法名、所述参数和所述回调传入postMessage函数,以唤醒对应的所述API监听器。
7.一种基于混合开发的页面处理装置,其特征在于,所述装置包括:
操作数据获取模块,用于通过应用程序入口获取用户操作数据;
初始化模块,用于通过软件开发工具包SDK调用初始化接口对所述用户操作数据进行初始化,以获得初始化结果;
嵌入模块,用于以WKWebView组件作为容器,将所述初始化结果内嵌入超文本标记语言HTML页面;
页面显示模块,用于显示所述HTML页面;在用户操作需要调用系统原生功能时,调用所述SDK提供的原生功能接口执行所述系统原生功能,所述原生功能接口是在系统原生的公共调用方法上功能进行系统封装获得;通过回调接收所述系统原生功能执行后获得的原生功能处理数据;通过所述HTML页面对所述原生功能处理数据进行显示。
8.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器运行程序指令时,执行权利要求1-6中任一项所述方法中的步骤。
9.一种可读取存储介质,其特征在于,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-6任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011556625.8A CN112559928B (zh) | 2020-12-24 | 2020-12-24 | 基于混合开发的页面处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011556625.8A CN112559928B (zh) | 2020-12-24 | 2020-12-24 | 基于混合开发的页面处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559928A CN112559928A (zh) | 2021-03-26 |
CN112559928B true CN112559928B (zh) | 2023-09-26 |
Family
ID=75033974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011556625.8A Active CN112559928B (zh) | 2020-12-24 | 2020-12-24 | 基于混合开发的页面处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559928B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312042A (zh) * | 2021-04-22 | 2021-08-27 | 北京搜狗智能科技有限公司 | 一种数据处理方法、装置和电子设备 |
CN113609417A (zh) * | 2021-07-26 | 2021-11-05 | 珠海格力电器股份有限公司 | 移动端页面的处理方法、装置、设备及介质 |
CN113835748B (zh) * | 2021-09-27 | 2024-05-10 | 商派软件有限公司 | 基于html5的应用程序的打包方法、系统和可读介质 |
CN113886102A (zh) * | 2021-09-27 | 2022-01-04 | 安科瑞电气股份有限公司 | 一种web端和iOS移动端交互方法、工具、设备及介质 |
CN115904341A (zh) * | 2022-12-14 | 2023-04-04 | 上海汇付支付有限公司 | 一种面向移动端混合开发的前端优化方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717596B1 (en) * | 2000-02-18 | 2004-04-06 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
KR20140026815A (ko) * | 2012-08-23 | 2014-03-06 | 주식회사 코드앤 | 하이브리드 앱 제공 시스템 및 제공 방법 |
CN104685469A (zh) * | 2012-08-09 | 2015-06-03 | 谷歌公司 | 用于web应用程序的后台应用程序页面架构 |
CN108021583A (zh) * | 2016-10-28 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 页面加载方法、页面操作指令的处理方法及客户端 |
CN108090156A (zh) * | 2017-12-12 | 2018-05-29 | 广东广业开元科技有限公司 | 一种基于html5创建可协同记账人工智能记账系统的方法 |
CN108733991A (zh) * | 2017-04-19 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 网页应用访问方法及装置、存储介质 |
CN109117123A (zh) * | 2018-07-16 | 2019-01-01 | 成都壬甲信息技术有限公司 | 跨移动操作系统app快速开发装置与方法 |
CN109743359A (zh) * | 2018-12-13 | 2019-05-10 | 平安普惠企业管理有限公司 | Hybrid通讯处理方法、装置、计算机设备及存储介质 |
CN111008009A (zh) * | 2019-11-05 | 2020-04-14 | 贝壳技术有限公司 | 基于Flutter的业务组件化方法及系统 |
CN111158818A (zh) * | 2019-12-24 | 2020-05-15 | 中国建设银行股份有限公司 | 一种页面渲染方法和装置 |
CN111723313A (zh) * | 2020-06-23 | 2020-09-29 | 中国平安财产保险股份有限公司 | 页面跳转的处理方法、装置、设备及存储介质 |
CN111736831A (zh) * | 2020-06-23 | 2020-10-02 | 山东浪潮商用系统有限公司 | 一种基于移动端html页面的自定义菜单组件开发方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582598B2 (en) * | 2011-07-05 | 2017-02-28 | Visa International Service Association | Hybrid applications utilizing distributed models and views apparatuses, methods and systems |
US10367916B2 (en) * | 2014-09-12 | 2019-07-30 | Sap Se | Enhanced feature vector |
-
2020
- 2020-12-24 CN CN202011556625.8A patent/CN112559928B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717596B1 (en) * | 2000-02-18 | 2004-04-06 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
CN104685469A (zh) * | 2012-08-09 | 2015-06-03 | 谷歌公司 | 用于web应用程序的后台应用程序页面架构 |
KR20140026815A (ko) * | 2012-08-23 | 2014-03-06 | 주식회사 코드앤 | 하이브리드 앱 제공 시스템 및 제공 방법 |
CN108021583A (zh) * | 2016-10-28 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 页面加载方法、页面操作指令的处理方法及客户端 |
CN108733991A (zh) * | 2017-04-19 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 网页应用访问方法及装置、存储介质 |
CN108090156A (zh) * | 2017-12-12 | 2018-05-29 | 广东广业开元科技有限公司 | 一种基于html5创建可协同记账人工智能记账系统的方法 |
CN109117123A (zh) * | 2018-07-16 | 2019-01-01 | 成都壬甲信息技术有限公司 | 跨移动操作系统app快速开发装置与方法 |
CN109743359A (zh) * | 2018-12-13 | 2019-05-10 | 平安普惠企业管理有限公司 | Hybrid通讯处理方法、装置、计算机设备及存储介质 |
CN111008009A (zh) * | 2019-11-05 | 2020-04-14 | 贝壳技术有限公司 | 基于Flutter的业务组件化方法及系统 |
CN111158818A (zh) * | 2019-12-24 | 2020-05-15 | 中国建设银行股份有限公司 | 一种页面渲染方法和装置 |
CN111723313A (zh) * | 2020-06-23 | 2020-09-29 | 中国平安财产保险股份有限公司 | 页面跳转的处理方法、装置、设备及存储介质 |
CN111736831A (zh) * | 2020-06-23 | 2020-10-02 | 山东浪潮商用系统有限公司 | 一种基于移动端html页面的自定义菜单组件开发方法 |
Non-Patent Citations (3)
Title |
---|
Cordova 应用中跨域访问行为的识别与风险评估;莫芊芊 等;《计算机应用与软件》;第37卷(第2期);1-7+14 * |
Gray Computing: A Framework for Computing with Background JavaScript Tasks;Y. Pan 等;《in IEEE Transactions on Software Engineering》;第45卷(第2期);171-193 * |
移动混合开发框架;徐隆龙 等;《计算机系统应用》;第23卷(第12期);53-59 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559928A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559928B (zh) | 基于混合开发的页面处理方法、装置、电子设备及存储介质 | |
KR102220127B1 (ko) | 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치 | |
US10552238B2 (en) | Secure inter-process communications for mobile devices | |
US20130346851A1 (en) | Declarative show and hide animations in html5 | |
US8645916B2 (en) | Crunching dynamically generated script files | |
TW201003438A (en) | Method and system to selectively secure the display of advertisements on web browsers | |
US11301357B1 (en) | Method to check application programming interface correctness in software | |
CN105072461B (zh) | 一种数据处理方法和装置 | |
US20120272133A1 (en) | Handling unexpected responses to script executing in client-side application | |
US8290152B2 (en) | Management system for web service developer keys | |
CN106161367A (zh) | 一种动态口令验证方法及系统、客户端和服务器 | |
Poccia | AWS Lambda in Action: Event-driven serverless applications | |
CN109634641B (zh) | 一种应用程序更新方法、装置、电子设备及介质 | |
KR20130085856A (ko) | 이종 웹서비스의 조합 응용에서 웹서비스 호출을 위한 위젯 자동 생성 방법 및 그 장치 | |
US8250178B2 (en) | Protecting client-side code | |
CN108156009A (zh) | 一种服务调用方法及装置 | |
CN112131085A (zh) | 互联网业务过程记录与回放的方法、系统及装置 | |
US20080072069A1 (en) | Protecting client-side code | |
Pieterse et al. | Evaluating the authenticity of smartphone evidence | |
US20190188063A1 (en) | Mapping computer programs to network protocol methods | |
Knudsen | Kicking Butt with MIDP and MSA: Creating Great Mobile Applications | |
Tech Note: Shader Snippets for Efficient 2D Dithering | Oculus | ||
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 | |
CN112434327A (zh) | 信息保护方法、装置及电子设备 | |
CN112579221A (zh) | 模态弹窗显示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |