CN111831280A - 基于全局单例WebView容器的混合开发方法 - Google Patents
基于全局单例WebView容器的混合开发方法 Download PDFInfo
- Publication number
- CN111831280A CN111831280A CN202010473958.8A CN202010473958A CN111831280A CN 111831280 A CN111831280 A CN 111831280A CN 202010473958 A CN202010473958 A CN 202010473958A CN 111831280 A CN111831280 A CN 111831280A
- Authority
- CN
- China
- Prior art keywords
- page
- webview
- webview container
- global
- event
- 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 29
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 230000009191 jumping Effects 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 5
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims description 3
- 230000005587 bubbling Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Abstract
本发明涉及APP开发领域,具体涉及一种减少内存资源占用、提高响应速率的基于全局单例WebView容器的混合开发方法。本发明的基于全局单例WebView容器的混合开发方法,首先初始化一个全局单例WebView容器;监听页面跳转事件,并判断是否发生跳转事件,若未发生跳转事件,则结束;若发生跳转事件,则进一步判断是否跳转前端页面,若不跳转前端页面,则返回原生页面,继续监听页面跳转事件;若跳转前端页面,则页面装载全局单例WebView容器。比起现有技术当需要连续展示并跳转多个前端页面时,原生端需要创建多个WebView容器,而每创建一个WebView容器都会占用一定的内存,本发明每次页面跳转只需要装载全局单例WebView容器,无需建立多个WebView容器,大大减少了内存占用,提高了相应速率。
Description
技术领域
本发明涉及APP开发领域,具体涉及一种减少内存资源占用、提高响应速率的基于全局单例WebView容器的混合开发方法。
背景技术
混合开发是指在移动端应用App中,使用内嵌的WebView容器浏览器作为容器来实现部分应用功能。目前移动端应用App混合开发模式中,主要通过原生端创建WebView容器,并在WebView容器中实现原生端与前端所约定的协议的方式来实现交互。原生端需要针对每一个跳转的前端页面创建一个对应的 WebView容器。当需要连续展示并跳转多个前端页面时,原生端需要创建多个 WebView容器,而每创建一个WebView容器都会占用一定的内存,当跳转过多, WebView容器数量过多时,会导致应用内存不足而出现卡顿问题。
发明内容
针对现有技术中的缺陷,本发明提供一种减少内存资源占用、提高响应速率的基于全局单例WebView容器的混合开发方法。
本发明采用的技术方案是:基于全局单例WebView容器的混合开发方法,包括以下步骤:
a、初始化全局单例WebView容器;
b、监听页面跳转事件;
c、判断是否发生跳转事件,若发生跳转事件,则执行步骤d;若未发生跳转事件,则跳转步骤f;
d、判断是否跳转前端页面,若不跳转,则返回原生页面,并执行步骤b,继续监听页面跳转事件;若跳转,则执行步骤e;
e、页面装载全局单例WebView容器;
f、结束。
为更好地实现本发明,所述的步骤a中,初始化全局单例WebView容器时,在WebView容器中实现全局单例WebView容器与前端交互相关的协议。
为更好地实现本发明,所述的协议包括页面跳转协议和页面销毁协议。
为更好地实现本发明,所述的步骤b中,监听页面跳转和销毁事件以及监听原生页面与页面跳转有关的事件。
为更好地实现本发明,所述的步骤b中,监听页面跳转事件采用基于IE 内核的浏览器监听方法。
为更好地实现本发明,所述的基于IE内核的浏览器监听方法的基本语法为:
dom对象.attachEvent(type,callback,capture):为元素绑定事件监听程序,
其中,type:绑定的事件类型;
callback:事件的处理程序;
capture:使用的浏览器模型。
为更好地实现本发明,所述的浏览器模型在IE7及IE7以下版本采用冒泡模型。
为更好地实现本发明,所述的浏览器模型在IE8及IE8版本以上采用捕获模型。
本发明的有益效果体现在:本发明的基于全局单例WebView容器的混合开发方法,首先初始化一个全局单例WebView容器;监听页面跳转事件,并判断是否发生跳转事件,若未发生跳转事件,则结束;若发生跳转事件,则进一步判断是否跳转前端页面,若不跳转前端页面,则返回原生页面,继续监听页面跳转事件;若跳转前端页面,则页面装载全局单例WebView容器。比起现有技术当需要连续展示并跳转多个前端页面时,原生端需要创建多个WebView容器,而每创建一个WebView容器都会占用一定的内存,本发明每次页面跳转只需要装载全局单例WebView容器,无需建立多个WebView容器,大大减少了内存占用,提高了相应速率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明的基于全局单例WebView容器的混合开发方法的一种流程框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
实施例1:
如图1所示,本发明的基于全局单例WebView容器的混合开发方法,包括以下步骤:
a、初始化全局单例WebView容器;
b、监听页面跳转事件;
c、判断是否发生跳转事件,若发生跳转事件,则执行步骤d;若未发生跳转事件,则跳转步骤f;
d、判断是否跳转前端页面,若不跳转,则返回原生页面,并执行步骤b,继续监听页面跳转事件;若跳转,则执行步骤e;
e、页面装载全局单例WebView容器;
f、结束。
本发明的基于全局单例WebView容器的混合开发方法,首先初始化一个全局单例WebView容器;监听页面跳转事件,并判断是否发生跳转事件,若未发生跳转事件,则结束;若发生跳转事件,则进一步判断是否跳转前端页面,若不跳转前端页面,则返回原生页面,继续监听页面跳转事件;若跳转前端页面,则页面装载全局单例WebView容器。比起现有技术当需要连续展示并跳转多个前端页面时,原生端需要创建多个WebView容器,而每创建一个WebView容器都会占用一定的内存,本发明每次页面跳转只需要装载全局单例WebView容器,无需建立多个WebView容器,大大减少了内存占用,提高了相应速率。
实施例2:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤a中,初始化全局单例WebView容器时,在WebView容器中实现全局单例WebView容器与前端交互相关的协议。所述的协议包括页面跳转协议和页面销毁协议,以及其他相关协议。所述的步骤b中,主要监听页面跳转和销毁事件以及监听原生页面与页面跳转有关的事件。
实施例3:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤b中,监听页面跳转事件采用基于IE内核的浏览器监听方法。所述的基于IE内核的浏览器监听方法的基本语法为:
dom对象.attachEvent(type,callback,capture):为元素绑定事件监听程序,
其中,type:绑定的事件类型;
callback:事件的处理程序;
capture:使用的浏览器模型。
实施例4:
在上述实施例的基础上,为进一步更好地实施本发明,所述的浏览器模型在IE7及IE7以下版本采用冒泡模型。所述的浏览器模型在IE8及IE8版本以上采用捕获模型。如果有两个元素元素1和元素2,元素2在元素1内部,我们附加一个事件处理程序,两个元素让我们说onClick。现在当我们点击元素2 时,将执行两个元素的eventHandler。如果首先执行附加了元素1的事件,则称为事件捕获,如果首先执行附加了元素2的事件,则称为事件冒泡。
作为一种优选的实施方式,首先,需要制定原生页面与前端页面交互的协议,必须包含页面跳转相关事件的协议,包括:跳转到新页面事件,销毁当前页面等事件。并且原生页面与前端页面均需要对协议中约定功能进行具体实现。其次,原生页面需要在应用启动时初始化一个全局的单例WebView容器以供跳转前端页面时在显视前端页面时使用。
最终,需要显示前端页面时,创建一个新的页面,并将初始化的全局单例 WebView容器装载到新页面上,完成显示。比起现有技术当需要连续展示并跳转多个前端页面时,原生端需要创建多个WebView容器,而每创建一个WebView容器都会占用一定的内存,本发明每次页面跳转只需要装载全局单例WebView容器,无需建立多个WebView容器,大大减少了内存占用,提高了相应速率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (8)
1.基于全局单例WebView容器的混合开发方法,其特征在于包括以下步骤:
a、初始化全局单例WebView容器;
b、监听页面跳转事件;
c、判断是否发生跳转事件,若发生跳转事件,则执行步骤d;若未发生跳转事件,则跳转步骤f;
d、判断是否跳转前端页面,若不跳转,则返回原生页面,并执行步骤b,继续监听页面跳转事件;若跳转,则执行步骤e;
e、页面装载全局单例WebView容器;
f、结束。
2.根据权利要求1所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的步骤a中,初始化全局单例WebView容器时,在WebView容器中实现全局单例WebView容器与前端交互相关的协议。
3.根据权利要求2所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的协议包括页面跳转协议和页面销毁协议。
4.根据权利要求1所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的步骤b中,监听页面跳转和销毁事件以及监听原生页面与页面跳转有关的事件。
5.根据权利要求1所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的步骤b中,监听页面跳转事件采用基于IE内核的浏览器监听方法。
6.根据权利要求5所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的基于IE内核的浏览器监听方法的基本语法为:
dom对象.attachEvent(type,callback,capture):为元素绑定事件监听程序,
其中,type:绑定的事件类型;
callback:事件的处理程序;
capture:使用的浏览器模型。
7.根据权利要求6所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的浏览器模型在IE7及IE7以下版本采用冒泡模型。
8.根据权利要求7所述的基于全局单例WebView容器的混合开发方法,其特征在于:所述的浏览器模型在IE8及IE8版本以上采用捕获模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473958.8A CN111831280A (zh) | 2020-05-29 | 2020-05-29 | 基于全局单例WebView容器的混合开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473958.8A CN111831280A (zh) | 2020-05-29 | 2020-05-29 | 基于全局单例WebView容器的混合开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831280A true CN111831280A (zh) | 2020-10-27 |
Family
ID=72913472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010473958.8A Pending CN111831280A (zh) | 2020-05-29 | 2020-05-29 | 基于全局单例WebView容器的混合开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831280A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250434A (zh) * | 2016-07-26 | 2016-12-21 | 东软集团股份有限公司 | 加载网页的方法及装置 |
WO2018158588A1 (en) * | 2017-03-02 | 2018-09-07 | Interactive Fish Holdings Limited | System and method for creating and using interactive web content |
CN108829398A (zh) * | 2018-03-27 | 2018-11-16 | 厦门欣旅通科技有限公司 | 一种移动端页面交互实现方法及装置 |
CN109634604A (zh) * | 2018-11-30 | 2019-04-16 | 南京天溯自动化控制系统有限公司 | 基于混合开发的iOS页面跳转方法及其系统 |
CN109740090A (zh) * | 2018-12-25 | 2019-05-10 | 南京天溯自动化控制系统有限公司 | 一种基于混合开发的android页面返回跳转方法及其系统 |
-
2020
- 2020-05-29 CN CN202010473958.8A patent/CN111831280A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250434A (zh) * | 2016-07-26 | 2016-12-21 | 东软集团股份有限公司 | 加载网页的方法及装置 |
WO2018158588A1 (en) * | 2017-03-02 | 2018-09-07 | Interactive Fish Holdings Limited | System and method for creating and using interactive web content |
CN108829398A (zh) * | 2018-03-27 | 2018-11-16 | 厦门欣旅通科技有限公司 | 一种移动端页面交互实现方法及装置 |
CN109634604A (zh) * | 2018-11-30 | 2019-04-16 | 南京天溯自动化控制系统有限公司 | 基于混合开发的iOS页面跳转方法及其系统 |
CN109740090A (zh) * | 2018-12-25 | 2019-05-10 | 南京天溯自动化控制系统有限公司 | 一种基于混合开发的android页面返回跳转方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180357085A1 (en) | Method and apparatus for running android application on windows system | |
CN106250434B (zh) | 加载网页的方法及装置 | |
US20190087212A1 (en) | Android simulator and method for implementing android simulator | |
CN110442327B (zh) | 一种应用程序构建方法、装置、服务器 | |
US8677186B2 (en) | Debugging in data parallel computations | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN108021405B (zh) | 一种soc系统启动过程中存储介质的驱动方法和装置 | |
JP2006164266A (ja) | オペレーティングシステムのパフォーマンスの改善 | |
CN109408208B (zh) | 导航芯片的多任务处理方法、设备、系统以及存储介质 | |
US8578368B2 (en) | Injecting a file from the bios into an operating system | |
CN111831280A (zh) | 基于全局单例WebView容器的混合开发方法 | |
US20190087221A1 (en) | Thread processor and thread processing method | |
CN110609680A (zh) | 基于Spring拦截器的参数传递方法、装置、存储介质及设备 | |
CN111399928A (zh) | 应用程序的启动方法、装置、电子设备及可读存储介质 | |
CN107704279B (zh) | 一种数据加载方法以及装置 | |
CN111708519A (zh) | 一种业务组件的处理方法、装置、设备和存储介质 | |
CN111130702B (zh) | 解码方法、解码系统、电子设备和存储介质 | |
CN111142972B (zh) | 用于扩展应用程序的功能的方法、装置、系统及介质 | |
CN113282363A (zh) | 一种优化混合app的方法及装置 | |
US5745768A (en) | Computer program product and program storage device for supporting native and non-native signals transferred between processing entities of a computer program | |
US20150199200A1 (en) | Replacement of Virtual Functions | |
CN103577177A (zh) | 一种图形库调用方法和设备 | |
US9910804B2 (en) | Input/output method in virtual machine environments | |
KR20140039779A (ko) | 안드로이드 운영 체제의 부팅 성능 향상 방법 | |
CN110651253A (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 |