网页调用native功能的方法和系统技术方案

技术编号:12610657 阅读:54 留言:0更新日期:2015-12-30 09:59
本发明专利技术提供一种网页调用native功能的方法,包括步骤:通过浏览器组件获取网页页面的资源请求;根据所述资源请求解析出所述资源的统一资源定位符;根据所述统一资源定位符获取并执行native指令。另外还提供一种与所述方法对应的网页调用native功能的系统,本发明专利技术的技术方案,通过在浏览器组件进行加载资源时接管资源请求,解析资源的统一资源定位符并获取native指令执行,以加载资源的形式实现网页页面与native的互调,使得在网页页面调试中,无需修改页面跳转方式,即可借助开发工具进行页面调试,降低了调试复杂度,提高了调试效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种网页调用native功能的方法和系统
技术介绍
“native”是原生的意思,指编写对应系统上原生应用的原生语言,“native”在不同系统上具体所指的语言是不同的,例如,1S系统的原生应用是用Objective-C编写的,Android系统原生应用是用Java编写的。目前,网页调用native功能的技术,一般是通过一种伪协议监听浏览器组件(webview)的URL (Uniform Resoure Locator,统一资源定位符)加载事件,再针对伪协议约定的schema截断请求,解析URL并转换为需要交给native调用的指令和参数。上述调用native功能的技术,存在较为明显的缺陷,例如,在浏览器上调试网页调用浏览器组件扩展的native功能时,由于无法判断出伪协议会让地址跳转到一个不存在的URL,此时需要对浏览器组件的网页地址进行相应修改才能借助开发工具进行页面调试,这就增加了调试难度,影响调试效率。
技术实现思路
基于此,有必要针对上述现有技术的问题,提供一种网页调用native功能的方法和系统,不影响页面跳转方式,便于页面调试,提高页面调试效率。—种网页调用native功能的方法,包括如下步骤:通过浏览器组件获取网页页面的资源请求;根据所述资源请求解析出所述资源的统一资源定位符;根据所述统一资源定位符获取并执行native指令。一种网页调用native功能的系统,包括:获取模块,用于通过浏览器组件获取网页页面的资源请求;接管模块,用于根据所述资源请求解析出所述资源的统一资源定位符;调用模块,用于根据所述统一资源定位符获取并执行native指令。上述网页调用native功能的方法和系统,通过在浏览器组件进行加载资源时接管资源请求,解析资源的统一资源定位符并获取native指令执行,以加载资源的形式实现网页页面与native的互调,使得在网页页面调试中,无需修改页面跳转方式,即可借助开发工具进行页面调试,降低了调试复杂度,提高了调试效率。【附图说明】图1为一个实施例的网页调用native的方法流程图;图2为一个实例的页面调用native功能的流程图;图3为基于现有监听URL加载事件的网页调试结果示意图;图4为基于本专利技术网页调用native功能的方法的网页调试结果示意图;图5为一个实施例的网页调用native功能的系统结构示意图;图6为另一实施例的网页调用native功能的系统结构示意图;图7为一个实施例的接管模块结构示意图;图8为一个实施例的调用模块结构示意图;图9中为一个实施例的终端设备的部分结构框图。【具体实施方式】下面结合附图对本专利技术的网页调用native功能的方法和系统的【具体实施方式】作详细描述。参考图1所示,图1为一个实施例的网页调用native的方法流程图,包括如下步骤:步骤S10,通过浏览器组件获取网页页面的资源请求。在此步骤中,可以通过浏览器组件接收网页页面的发起的资源请求,浏览器组件接收到网页页面的资源请求后,会访问并加载相关资源,由此,可在此接管浏览器组件的加载资源请求,实现监听浏览器组件所有的资源加载行为。对于网页页面的资源请求,可以通过JS (JavaScript的简写,指一种广泛用于客户端Web开发的脚本语言)代码来实现,所以,用户可以通过JS创建调用浏览器组件扩展功能的资源请求,将资源请求添加到所述网页页面中,这里所说的资源可以为网页的图片、视频等。步骤S20,根据所述资源请求解析出所述资源的统一资源定位符。在此步骤中,可以根据接管的网页页面的资源请求,解析资源的统一资源定位符,监听浏览器组件所有的资源加载行为,从而使得网页页面可以通过伪协议调用native扩展功能。对于上述处理过程,可以通过缓存代理来完成,作为一个实施例,步骤S20的步骤具体可以包括:将所述资源请求转发至缓存代理;通过缓存代理解析所述资源请求获得统一资源定位符。对于缓存代理的接管功能实现,可以首先创建一个系统缓存代理,然后设置缓存代理解析的伪协议,扩展接管资源请求的功能,将缓存代理注册生效,实现接管浏览器组件的资源请求功能。步骤S30,根据所述统一资源定位符获取并执行native指令。在此步骤中,主要是将统一资源定位符转换为native指令并执行,实现了网页页面对native扩展功能的调用。在一个实施例中,步骤S30具体可以包括如下:判断所述统一资源定位符是否为伪协议,若是,通知所述浏览器组件结束资源请求,将所述统一资源定位符转换为native指令并执行该指令,否则根据统一资源定位符从服务器加载相应资源。进一步地,对于所述将所述统一资源定位符转换为native指令并执行该指令的步骤,可以根据约定的伪协议将所述统一资源定位符转换为native调用的指令和参数,根据所述指令和参数调用相应的方法(method),即在面向对象编程中native实现的函数,其中,面向对象编程(Object Oriented Programming,OOP),也称面向对象程序设计,是一种计算机编程架构,其基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,以达到重用性、灵活性和扩展性的目标,每个对象都能够接收信息、处理数据和向其它对象发送信息。另外,对于所述浏览器组件的运行环境,可以为电脑操作系统,例如windows系统,也可以移动操作系统(Mobile operating system,简称Mobile OS),例如1S系统或android系统等。由于本专利技术的技术方案是以加载资源的形式实现网页页面对native代码的调用。所以,可以实现跨平台的使用,在借助开发工具对网页页面调试过程中,调试的网页页面通过该方式调用native功能,无需对浏览器组件的页面地址进行任何改动,只需要在网页页面中创建一个资源请求即可实现消息传递,接管并监听浏览器组件所有的资源加载行为,在浏览器组件有资源加载行为时,根据约定的伪协议调用native扩展功能,从而可以降低页面调试难度,提高调试效率。参考图2所示,图2为一个实例的页面调用native功能的流程图;包括如下步骤:步骤S201,用户页面发出资源请求;步骤S202,浏览器组件将接收的资源请求转发至缓存代理;步骤S203,缓存代理解析资源请求得到资源的URL ;步骤S204,判断URL是否为伪协议;若是,进入步骤S206,否则进入步骤S205 ;步骤S205,浏览器组件根据URL访问服务器并加载相应资源;步骤S206,截断浏览器组件的资源请求;步骤S207,将URL转换为native指令并执行。下面阐述本专利技术的网页调用native功能的方法在1S、android系统上实现的两个实例。(I)在1S系统上实现1S系统自带有缓存代理类,当浏览器发出资源请求时必须会通过所述缓存代理,因此可以通过扩展所述缓存代理类,设置其接管资源请求的功能,处理自定义的伪协议。具体的,可以通过注册一个NSURLProtocol来实现,以下是1S系统上实现的具体过程:Stepl:创建一个类,继承NSURLProtocol,即创建一个系统缓存代理的副本,以便后续进行扩展。St印2:对缓存代理进行功能扩展,实现NSU当前第1页1 2&nb本文档来自技高网...

【技术保护点】
一种网页调用native功能的方法,其特征在于,包括如下步骤:通过浏览器组件获取网页页面的资源请求;根据所述资源请求解析出所述资源的统一资源定位符;根据所述统一资源定位符获取并执行native指令。

【技术特征摘要】

【专利技术属性】
技术研发人员:王志斌
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1