CN114760282A - 基于ios系统的网络请求方法、装置、设备及存储介质 - Google Patents
基于ios系统的网络请求方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114760282A CN114760282A CN202210468008.5A CN202210468008A CN114760282A CN 114760282 A CN114760282 A CN 114760282A CN 202210468008 A CN202210468008 A CN 202210468008A CN 114760282 A CN114760282 A CN 114760282A
- Authority
- CN
- China
- Prior art keywords
- network
- network request
- layer
- data
- request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 244000035744 Hura crepitans Species 0.000 claims abstract description 70
- 230000008569 process Effects 0.000 claims abstract description 35
- 230000000977 initiatory effect Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 3
- 108091029480 NONCODE Proteins 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000001066 destructive effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请为网页加载技术领域,本申请提供了一种基于IOS系统的网络请求方法、装置、设备及存储介质,其中,所述方法包括:当监测到网页层发起网络请求时,调用原生层拦截网页加载过程中的网络请求;原生层判断IOS系统的本地沙盒中是否存在网络请求所请求的网络数据;若存在,原生层从本地沙盒中获取网络数据,将网络数据发送给网页层;若不存在,原生层向服务器发起网络请求,从服务器中下载网络请求所请求的网络数据,将下载后的网络数据发送给网页层,并缓存至本地沙盒,从而加快网页速度,提升用户体验,并通过原生层将各种静态资源缓存在本地沙盒中。
Description
技术领域
本申请涉及网页加载技术领域,具体而言,本申请涉及一种基于IOS系统的网络请求方法、装置、设备及存储介质。
背景技术
苹果公司在iOS8以后推出了新框架WebKit,提供了替换原UIWebView的WKWebView组件,该组件具有稳定性高,内存占用少,渲染速度快等优点,是苹果官方推荐的网页显示组件。虽然WKWebView有诸多优点,但是与原有的UIWebView组件相比,其更加封闭,原有的访问拦截、缓存优化等优化策略都已失效。
WKWebView组件受限于网页的能力,大多使用场景限制在普通的内容展示,对智能手机操作系统的原生能力的支持极度欠缺,所能实现的功能无法与智能手机操作系统的原生开发相比,如未解决各种静态资源,如JS,CSS,PNG,JPG等资源在沙盒中的离线缓存问题。
发明内容
本申请的主要目的为提供一种基于IOS系统的网络请求方法、装置、设备及存储介质。
为了实现上述发明目的,本申请提供一种基于IOS系统的网络请求方法,所述IOS系统包括原生层及网页层,所述网络请求方法包括:
当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
优选地,所述调用所述原生层拦截网页加载过程中的所述网络请求,包括:
判断所述网络请求是否预先注册了WKURLSchemeHandler;
若是,则调用所述原生层拦截网页加载过程中的所述网络请求。
优选地,所述原生层向服务器发起所述网络请求,包括:
判断所述IOS系统的版本是否低于预设版本;
若是,所述原生层从预先存储至内存中获取所述网络请求的body数据;
将所述body数据进行包装后,向服务器发起所述网络请求。
进一步地,所述判断所述IOS系统的版本是否低于预设版本之后,还包括:
若否,所述原生层从预先存储至内存中获取所述网络请求的body数据;
判断所述网络请求的body数据是否含有Blob类型数据;
若是,将所述body数据的Blob类型数据转换为Base64编码类型的数据并包装后,向服务器发起所述网络请求。
进一步地,所述判断所述网络请求的body数据是否含有Blob类型数据之后,还包括:
若否,所述原生层直接向服务器发起所述网络请求。
优选地,所述将所述body数据进行包装后,向服务器发起所述网络请求,包括:
获取预先构建好的HLLFetch.JS文件;
利用所述HLLFetch.JS文件对所述body数据进行包装后,向服务器发起所述网络请求。
优选地,所述原生层向服务器发起所述网络请求,包括:
所述原生层确定所述网络请求的请求类型;
根据所述请求类型向服务器发起所述网络请求。
本申请还提供一种基于IOS系统的网络请求装置,所述IOS系统包括原生层及网页层,所述网络请求装置包括:
调用模块,用于当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
判断模块,用于所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
获取模块,用于若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
下载模块,用于若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本申请所提供的一种基于IOS系统的网络请求方法、装置、设备及存储介质,当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒,从而使原生层拦截并接管网页层加载网页过程中的所有网络请求,再由原生层发起真正请求并将请求结果返回给网页层,以加快网页速度,提升用户体验;并通过原生层将各种静态资源,如JS,CSS,PNG,JPG等资源缓存在本地沙盒中。
附图说明
图1为本申请一实施例的基于IOS系统的网络请求方法的流程示意图;
图2为本申请一实施例的基于IOS系统的网络请求装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提出的一种基于IOS系统的网络请求方法,执行主体可以是电子设备、终端设备、服务器或者其他可以执行本申请的装置或设备,不做限制。
参考图1,其中一个实施例中,本申请提供一种基于IOS系统的网络请求方法,所述IOS系统包括原生层及网页层,所述网络请求方法包括:
S11、当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
S12、所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
S13、若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
S14、若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
如上述步骤S11所述,当需要加载网页的JS、CSS、PNG或JPG等文件时,网页层分别为每个文件的获取发起网络请求,以获取JS、CSS、PNG或JPG等文件,并对应加载至当前网页。当监测到所述网页层发起网络请求时,计算机设备则调用原生层拦截网页加载过程中的网络请求。
其中,JS文件是指包含JavaScript代码,以“.JS”为扩展名的文本文档,用于在网页中执行JavaScript指令;可以说JS文件是网页JavaScript客户端脚本文件。
CSS是Cascading Style Sheet的缩写,即层叠样式表,是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。CSS文件,它是一种与HTML语言配合使用制作网页的文件,它的作用主要是控制HTML文章的布局,简单的说就是控制网页的显示外观。CSS文件,本身其实就是一种文本文件,只是采用CSS规定的语法规则来写,这样浏览器就可以识别。CSS文件除了具有控制页面布局的作用外,它还可以很好的将HTML代码与CSS代码分离,做到内容与布局独立编写,互不干扰,条理更加清晰。
JPG是常见的一种图像格式,PNG是一种无损压缩的图片格式,使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序或网页中,原因是它压缩比高,生成文件体积小。
原生层为终端操作系统提供的、能够进行页面渲染的业务层。该原生层能够调用操作系统提供的通信接口,以触发操作系统进行页面的渲染。而网页层可以调用浏览器内核的API,间接地调用系统层API,因此响应速度也较慢。
本实施例的智能手机操作系统原生层与网页层之间可通过JSContext组件实现沟通,在JSContext组件中申请两个全局管道队列,分别用于网页层与原生层之间的双向访问。其中,JSContext是iOS系统库JavaScriptCore中的一个类,用于Objective-C和JavaScript之间的交互。
在一实施例中,一旦启动拦截网页层的网络请求,则原生层会接管网页层的所有网络请求,包括Ajax请求,如get请求和post请求,并由原生层发起真正的网络请求,并将请求后的数据返回给页面层,进行数据加载。
如上述步骤S12-S14所述,沙盒在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境,通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。具体的,沙盒通常严格控制其中的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。此外,沙盒中的所有改动对操作系统不会造成任何损失。通常,这种技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码。
因此,iOS应用程序只能在为程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。每个应用程序都有自己的存储空间,应用程序不能翻过自己的围墙去访问别的存储空间的内容,同时应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。
本实施例的原生层首先判断IOS系统的本地沙盒中是否存在网络请求所请求的网络数据,若存在,原生层从本地沙盒中获取网络数据,将网络数据发送给网页层,网页层根据网络数据加载网页,从而无需从服务器中下载网络数据,提高网页加载速度。
当IOS系统的本地沙盒中不存在网络请求所请求的网络数据时,则通过原生层向服务器发起网络请求,从服务器中下载网络请求所请求的网络数据,将下载后的网络数据发送给网页层,由于该原生层能够调用操作系统提供的通信接口,以触发操作系统进行页面的渲染,因此响应速度较快;并将下载后的网络数据缓存至所述本地沙盒,以提高下次网页加载时的加载速度,无需从服务器中重新下载网络数据。
需要说明的是,原生层拦截并接管网页层加载网页过程中的所有网络请求,再由原生层发起真正请求并将请求结果返回给网页层,以加快网页速度,提升用户体验。其中,所能处理的请求类型包括但不限于:
静态资源类请求,如CSS文件,JS文件,JPG图片,PNG图片等请求;
网页发起的Ajax的请求,如GET请求,POST请求,PUT请求等。
本申请所提供的一种基于IOS系统的网络请求方法,当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒,从而使原生层拦截并接管网页层加载网页过程中的所有网络请求,再由原生层发起真正请求并将请求结果返回给网页层,以加快网页速度,提升用户体验;并通过原生层将各种静态资源,如JS,CSS,PNG,JPG等资源缓存在本地沙盒中。
在一实施例中,所述调用所述原生层拦截网页加载过程中的所述网络请求,可具体包括:
判断所述网络请求是否预先注册了WKURLSchemeHandler;
若是,则调用所述原生层拦截网页加载过程中的所述网络请求。
现有一般使用了NSURLProtocol拦截网页加载过程中的网络请求,但由于NSURLProtocol隔离性差,一经注册就会全局开启,会污染应用程序内合作的第三方页面。因此,本实施例采用WKURLSchemeHandler拦截网页加载过程中的网络请求,并在拦截网络请求之前,先判断网络请求是否预先注册了WKURLSchemeHandler,若是,则调用原生层拦截网页加载过程中的网络请求,因此只会拦截注册了WKURLSchemeHandler的网络请求。
其中,NSURLProtocol是iOS系统的Foundation框架一个抽象类,用于拦截应用程序中发起的请求。WKURLSchemeHandler是iOS11系统开始提供的一个类,用于拦截WKWebView加载过程中发起的请求。
在一实施例中,所述原生层向服务器发起所述网络请求,可具体包括:
判断所述IOS系统的版本是否低于预设版本;
若是,所述原生层从预先存储至内存中获取所述网络请求的body数据;
将所述body数据进行包装后,向服务器发起所述网络请求。
本申请在拦截到网页的POST请求时,发现在iOS11.3之前的版本请求体body数据会丢失,因此,在网页层发起请求前会先将body数据传递给原生层,待真正发起时,判断IOS系统的版本是否低于预设版本,若是,原生层从预先存储至内存中获取所述网络请求的body数据,将所述body数据进行包装后,向服务器发起真正的所述网络请求,以避免body数据会丢失。
在一实施例中,所述判断所述IOS系统的版本是否低于预设版本之后,还包括:
若否,所述原生层从预先存储至内存中获取所述网络请求的body数据;
判断所述网络请求的body数据是否含有Blob类型数据;
若是,将所述body数据的Blob类型数据转换为Base64编码类型的数据并包装后,向服务器发起所述网络请求。
此外,本申请在拦截到网页的POST请求时,发现iOS11.3之后的版本,其请求体body数据中如果含有Blob类型数据则会丢失,因此,本实施例在向服务器发起网络请求之前,判断网络请求的body数据是否含有Blob类型数据,如果包含,则会先将body数据中的Blob类型数据转化为Base64编码类型的数据,并传递给原生层,待真正发起时,原生层再从内存中取出body数据包装并向服务器发起新的网络请求,以避免含有Blob类型数据的body数据的丢失。
在一实施例中,所述判断所述网络请求的body数据是否含有Blob类型数据之后,还可包括:
若否,所述原生层直接向服务器发起所述网络请求。
在本实施例中,当前iOS系统的版本高于预设版本且网络请求的Body数据中不含blob类型数据时,则原生层拦截到网络请求后,无需从内存中获取Body数据,也无需将body数据中的Blob类型数据转化为Base64编码类型的数据,原生层可直接向服务器发起网络请求,以从服务器获取网络数据,并将下载后的网络数据返回给网页层,以使网页层在当前页面中加载网络数据。
需要说明的是,加载HTML文档时需注入编写好的HLLFetch.JS文件,此JS文件主要用于包装网页层发起的每一个网络请求,如ajax请求,实现了ajax请求的拦截处理。
在一实施例中,所述将所述body数据进行包装后,向服务器发起所述网络请求,包括:
获取预先构建好的HLLFetch.JS文件;
利用所述HLLFetch.JS文件对所述body数据进行包装后,向服务器发起所述网络请求。
本实施例可预先构建好一个HLLFetch.JS文件,引入这个HLLFetch.JS文件后,在网络请求框架中使用原生Fetch()对网页层发起的原始的post请求或get请求等网络请求进行包装。具体的,判断网页层发起的请求是否为网络请求;若为网络请求,先将body数据传递给原生层缓存下来,以便原生层利用HLLFetch.JS文件对body数据进行包装后,向服务器发起网络请求,也避免网络请求时数据丢失。
在一实施例中,所述原生层向服务器发起所述网络请求,包括:
所述原生层确定所述网络请求的请求类型;
根据所述请求类型向服务器发起所述网络请求。
在本实施例中,由于原生层可以拦截H5网页发起的所有网络请求,在拦截到任一类型的请求后可以通过请求链接地址来判断属于哪种请求类型,根据请求类型向服务器发起网络请求。
比如https://***/abc/index.CSS,则判断属于CSS文件类型,原生层可以发起真正的网络请求去下载此资源先缓存至本地沙盒中,并同时返回给网页层,以使网页层在当前页面中加载网络数据。
参照图2,本申请实施例中还提供一种基于IOS系统的网络请求装置,所述IOS系统包括原生层及网页层,所述网络请求装置包括:
调用模块11,用于当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
判断模块12,用于所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
获取模块13,用于若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
下载模块14,用于若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
在本实施例中,当需要加载网页的JS、CSS、PNG或JPG等文件时,网页层分别为每个文件的获取发起网络请求,以获取JS、CSS、PNG或JPG等文件,并对应加载至当前网页。当监测到所述网页层发起网络请求时,计算机设备则调用原生层拦截网页加载过程中的网络请求。
其中,JS文件是指包含JavaScript代码,以“.JS”为扩展名的文本文档,用于在网页中执行JavaScript指令;可以说JS文件是网页JavaScript客户端脚本文件。
CSS是Cascading Style Sheet的缩写,即层叠样式表,是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。CSS文件,它是一种与HTML语言配合使用制作网页的文件,它的作用主要是控制HTML文章的布局,简单的说就是控制网页的显示外观。CSS文件,本身其实就是一种文本文件,只是采用CSS规定的语法规则来写,这样浏览器就可以识别。CSS文件除了具有控制页面布局的作用外,它还可以很好的将HTML代码与CSS代码分离,做到内容与布局独立编写,互不干扰,条理更加清晰。
JPG是常见的一种图像格式,PNG是一种无损压缩的图片格式,使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序或网页中,原因是它压缩比高,生成文件体积小。
原生层为终端操作系统提供的、能够进行页面渲染的业务层。该原生层能够调用操作系统提供的通信接口,以触发操作系统进行页面的渲染。而网页层可以调用浏览器内核的API,间接地调用系统层API,因此响应速度也较慢。
本实施例的智能手机操作系统原生层与网页层之间可通过JSContext组件实现沟通,在JSContext组件中申请两个全局管道队列,分别用于网页层与原生层之间的双向访问。其中,JSContext是iOS系统库JavaScriptCore中的一个类,用于Objective-C和JavaScript之间的交互。
在一实施例中,一旦启动拦截网页层的网络请求,则原生层会接管网页层的所有网络请求,包括Ajax请求,如get请求和post请求,并由原生层发起真正的网络请求,并将请求后的数据返回给页面层,进行数据加载。
在本实施例中,沙盒在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境,通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。具体的,沙盒通常严格控制其中的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。此外,沙盒中的所有改动对操作系统不会造成任何损失。通常,这种技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码。
因此,iOS应用程序只能在为程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。每个应用程序都有自己的存储空间,应用程序不能翻过自己的围墙去访问别的存储空间的内容,同时应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。
本实施例的原生层首先判断IOS系统的本地沙盒中是否存在网络请求所请求的网络数据,若存在,原生层从本地沙盒中获取网络数据,将网络数据发送给网页层,网页层根据网络数据加载网页,从而无需从服务器中下载网络数据,提高网页加载速度。
当IOS系统的本地沙盒中不存在网络请求所请求的网络数据时,则通过原生层向服务器发起网络请求,从服务器中下载网络请求所请求的网络数据,将下载后的网络数据发送给网页层,由于该原生层能够调用操作系统提供的通信接口,以触发操作系统进行页面的渲染,因此响应速度较快;并将下载后的网络数据缓存至所述本地沙盒,以提高下次网页加载时的加载速度,无需从服务器中重新下载网络数据。
需要说明的是,原生层拦截并接管网页层加载网页过程中的所有网络请求,再由原生层发起真正请求并将请求结果返回给网页层,以加快网页速度,提升用户体验。其中,所能处理的请求类型包括但不限于:
静态资源类请求,如CSS文件,JS文件,JPG图片,PNG图片等请求;
网页发起的Ajax的请求,如GET请求,POST请求,PUT请求等。
本申请所提供的一种基于IOS系统的网络请求装置,当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒,从而使原生层拦截并接管网页层加载网页过程中的所有网络请求,再由原生层发起真正请求并将请求结果返回给网页层,以加快网页速度,提升用户体验;并通过原生层将各种静态资源,如JS,CSS,PNG,JPG等资源缓存在本地沙盒中。
如上所述,可以理解地,本申请中提出的所述基于IOS系统的网络请求装置的各组成部分可以实现如上所述基于IOS系统的网络请求方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储所述基于IOS系统的网络请求方法的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于IOS系统的网络请求方法。
上述处理器执行上述的基于IOS系统的网络请求方法,所述IOS系统包括原生层及网页层,所述网络请求方法包括:
当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种基于IOS系统的网络请求方法,所述IOS系统包括原生层及网页层,所述网络请求方法包括:
当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本申请的最大有益效果在于:
本申请所提供的一种基于IOS系统的网络请求方法、装置、设备及存储介质,当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒,从而使原生层拦截并接管网页层加载网页过程中的所有网络请求,再由原生层发起真正请求并将请求结果返回给网页层,以加快网页速度,提升用户体验;并通过原生层将各种静态资源,如JS,CSS,PNG,JPG等资源缓存在本地沙盒中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于IOS系统的网络请求方法,所述IOS系统包括原生层及网页层,其特征在于,所述网络请求方法包括:
当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
2.根据权利要求1所述的方法,其特征在于,所述调用所述原生层拦截网页加载过程中的所述网络请求,包括:
判断所述网络请求是否预先注册了WKURLSchemeHandler;
若是,则调用所述原生层拦截网页加载过程中的所述网络请求。
3.根据权利要求1所述的方法,其特征在于,所述原生层向服务器发起所述网络请求,包括:
判断所述IOS系统的版本是否低于预设版本;
若是,所述原生层从预先存储至内存中获取所述网络请求的body数据;
将所述body数据进行包装后,向服务器发起所述网络请求。
4.根据权利要求3所述的方法,其特征在于,所述判断所述IOS系统的版本是否低于预设版本之后,还包括:
若否,所述原生层从预先存储至内存中获取所述网络请求的body数据;
判断所述网络请求的body数据是否含有Blob类型数据;
若是,将所述body数据的Blob类型数据转换为Base64编码类型的数据并包装后,向服务器发起所述网络请求。
5.根据权利要求4所述的方法,其特征在于,所述判断所述网络请求的body数据是否含有Blob类型数据之后,还包括:
若否,所述原生层直接向服务器发起所述网络请求。
6.根据权利要求3所述的方法,其特征在于,所述将所述body数据进行包装后,向服务器发起所述网络请求,包括:
获取预先构建好的HLLFetch.JS文件;
利用所述HLLFetch.JS文件对所述body数据进行包装后,向服务器发起所述网络请求。
7.根据权利要求1所述的方法,其特征在于,所述原生层向服务器发起所述网络请求,包括:
所述原生层确定所述网络请求的请求类型;
根据所述请求类型向服务器发起所述网络请求。
8.一种基于IOS系统的网络请求装置,所述IOS系统包括原生层及网页层,其特征在于,所述网络请求装置包括:
调用模块,用于当监测到所述网页层发起网络请求时,调用所述原生层拦截网页加载过程中的所述网络请求;
判断模块,用于所述原生层判断所述IOS系统的本地沙盒中是否存在所述网络请求所请求的网络数据;
获取模块,用于若存在,所述原生层从所述本地沙盒中获取所述网络数据,将所述网络数据发送给所述网页层;
下载模块,用于若不存在,所述原生层向服务器发起所述网络请求,从服务器中下载所述网络请求所请求的网络数据,将下载后的所述网络数据发送给所述网页层,并缓存至所述本地沙盒。
9.一种计算机设备,其特征在于,包括:
处理器;
存储器;
其中,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的基于IOS系统的网络请求方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的基于IOS系统的网络请求方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210468008.5A CN114760282A (zh) | 2022-04-29 | 2022-04-29 | 基于ios系统的网络请求方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210468008.5A CN114760282A (zh) | 2022-04-29 | 2022-04-29 | 基于ios系统的网络请求方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114760282A true CN114760282A (zh) | 2022-07-15 |
Family
ID=82333291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210468008.5A Pending CN114760282A (zh) | 2022-04-29 | 2022-04-29 | 基于ios系统的网络请求方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114760282A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150046789A1 (en) * | 2013-08-09 | 2015-02-12 | Yottaa Inc. | Systems and methods for dynamically modifying a requested web page from a server for presentation at a client |
CN111176754A (zh) * | 2019-12-25 | 2020-05-19 | 搜游网络科技(北京)有限公司 | Html5应用运行方法、装置、运行器及计算机可读存储介质 |
CN111475314A (zh) * | 2020-04-03 | 2020-07-31 | 深信服科技股份有限公司 | 一种网络请求的处理方法、装置、设备及存储介质 |
CN112559927A (zh) * | 2020-12-23 | 2021-03-26 | 上海哔哩哔哩科技有限公司 | 一种网页加载方法及装置 |
CN113094612A (zh) * | 2021-04-08 | 2021-07-09 | 中国工商银行股份有限公司 | 客户端加载网页的方法、装置、电子设备及介质 |
CN113315829A (zh) * | 2021-05-26 | 2021-08-27 | 平安普惠企业管理有限公司 | 客户端离线化h5页面加载方法、装置、计算机设备及介质 |
CN113626741A (zh) * | 2021-07-02 | 2021-11-09 | 杭州隆埠科技有限公司 | 一种移动客户端网页加载的方法及设备 |
CN113901362A (zh) * | 2021-11-25 | 2022-01-07 | 企查查科技有限公司 | 网页展示方法、装置、设备、存储介质和程序产品 |
-
2022
- 2022-04-29 CN CN202210468008.5A patent/CN114760282A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150046789A1 (en) * | 2013-08-09 | 2015-02-12 | Yottaa Inc. | Systems and methods for dynamically modifying a requested web page from a server for presentation at a client |
CN111176754A (zh) * | 2019-12-25 | 2020-05-19 | 搜游网络科技(北京)有限公司 | Html5应用运行方法、装置、运行器及计算机可读存储介质 |
CN111475314A (zh) * | 2020-04-03 | 2020-07-31 | 深信服科技股份有限公司 | 一种网络请求的处理方法、装置、设备及存储介质 |
CN112559927A (zh) * | 2020-12-23 | 2021-03-26 | 上海哔哩哔哩科技有限公司 | 一种网页加载方法及装置 |
CN113094612A (zh) * | 2021-04-08 | 2021-07-09 | 中国工商银行股份有限公司 | 客户端加载网页的方法、装置、电子设备及介质 |
CN113315829A (zh) * | 2021-05-26 | 2021-08-27 | 平安普惠企业管理有限公司 | 客户端离线化h5页面加载方法、装置、计算机设备及介质 |
CN113626741A (zh) * | 2021-07-02 | 2021-11-09 | 杭州隆埠科技有限公司 | 一种移动客户端网页加载的方法及设备 |
CN113901362A (zh) * | 2021-11-25 | 2022-01-07 | 企查查科技有限公司 | 网页展示方法、装置、设备、存储介质和程序产品 |
Non-Patent Citations (1)
Title |
---|
周晓龙;邸青;吕文琪;: "智能移动终端对移动网络流量影响研究", 信息通信技术, no. 04 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870787B (zh) | 应用程序插件化加载方法及系统 | |
CN107203555B (zh) | 页面加载处理方法及装置 | |
US9244702B1 (en) | Installer-free applications using native code modules and persistent local storage | |
WO2016086767A1 (zh) | 实现浏览器安全的方法、浏览器客户端和装置 | |
KR20060082353A (ko) | 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법 | |
CN108520059A (zh) | 客户端h5页面的加载方法、系统、计算机设备和存储介质 | |
WO2016164036A1 (en) | Modifying web page code to include code to protect output | |
CN103744652A (zh) | 一种跨移动终端的混合app开发方法及装置 | |
CN109240697B (zh) | 调用处理方法及装置、存储介质 | |
CN111198998B (zh) | 基于Ajax请求的网络页面加载方法、装置及系统 | |
CN109784039B (zh) | 移动终端安全运行空间的构建方法、电子设备、存储介质 | |
KR101482150B1 (ko) | 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 | |
CN111522849A (zh) | 数据库动态访问方法、服务器及存储介质 | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及系统 | |
CN105786476B (zh) | 移动客户端与服务器之间的数据处理方法及系统 | |
CN110290204B (zh) | 一种浏览器过代理的实现方法、装置及终端设备 | |
CN107193667B (zh) | 网页权限的更新方法及装置 | |
KR101482151B1 (ko) | 웹 어플리케이션 실행 장치 및 방법 | |
CN109325192B (zh) | 一种广告防屏蔽的方法和装置 | |
CN110825373B (zh) | 一种移动端动态化方法及装置 | |
CN114760282A (zh) | 基于ios系统的网络请求方法、装置、设备及存储介质 | |
CN112468611A (zh) | 应用程序启动方法、终端设备及计算机存储介质 | |
CN113315829B (zh) | 客户端离线化h5页面加载方法、装置、计算机设备及介质 | |
CN111061501A (zh) | 安卓应用的热更新方法及计算机可读存储介质 | |
CN112416462B (zh) | 离线h5应用加载方法及系统 |
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 |