CN109740090A - 一种基于混合开发的android页面返回跳转方法及其*** - Google Patents
一种基于混合开发的android页面返回跳转方法及其*** Download PDFInfo
- Publication number
- CN109740090A CN109740090A CN201811588257.8A CN201811588257A CN109740090A CN 109740090 A CN109740090 A CN 109740090A CN 201811588257 A CN201811588257 A CN 201811588257A CN 109740090 A CN109740090 A CN 109740090A
- Authority
- CN
- China
- Prior art keywords
- page
- return
- android
- web
- higher level
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种基于混合开发的android页面返回跳转方法及其***,所述的方法具体步骤如下:S1、原生***通过覆写Activity的onKeyDown方法拦截android返回键,获取返回键的单击事件;S2、调用web端goBack方法中的backView方法查找$ionicHistory堆栈中的web端历史记录,判断当前web页面的上级页面类型;S3、当上级页面是web页面时,调用$ionicHistory.goBack方法返回上级web页面;S4、当上级页面是原生页面时,调用android原生页面注册的goBack方法返回原生页面。所述的***包括安卓端监听模块、Web端监听模块、判断模块、web端返回模块和安卓***返回模块。本发明方法和***可以在发生返回操作后正确判断上级页面类型,并按顺序返回上级页面,避免混合开发软件页面跳转错误的问题。
Description
技术领域
本发明涉及一种混合开发的android APP页面跳转的方法,属于APP混合开发技术领域。
背景技术
App混合开发是一个常见的软件开发模式,通常混合开发的APP的一部分功能通过native构建,另一部分功能通过html5构建。由于混合开发可以节约开发成本,缩短App开发周期,很多App开始使用混合开发模式。
在android APP混合开发的过程中,通常考虑两个返回按键,一个是android原生***自带的物理返回按键,另一个是web页面左上角或右上角的返回按键。正常情况下,当我们点击物理返回键或者web端返回按钮时,APP会按顺序返回上一级页面,但是在实际的开发和测试过程中,APP打开的页面级数较多时,页面跳转有可能发生混乱,页面无法按照顺序返回。
发明内容
针对混合开发的android APP在进行返回操作后无法按顺序返回上级页面的问题,本发明提出了一种基于混合开发的android页面返回跳转方法及其***,在发生返回操作后,通过backView方法查找$ionicHistory堆栈中的web端历史记录,判断当前页面的上级页面类型,根据判断结果逐级返回上级页面。
为解决上述技术问题,本发明采用了如下技术手段:
一种基于混合开发的android页面返回跳转方法,具体包括以下步骤:
S1、原生***通过覆写Activity的onKeyDown方法拦截android返回键,获取返回键的单击事件;
S2、调用web页面注册的goBack方法,在goBack方法中调用$ionicHistory .backView方法查找$ionicHistory堆栈中的web端历史记录,判断当前web页面的上级页面类型;
S3、当上级页面是web页面时,调用$ionicHistory .goBack方法返回上级web页面;
S4、当上级页面是原生页面时,调用android原生页面注册的goBack方法返回原生页面。
进一步的,所述的android返回键包括android物理返回键和web网页功能返回键。
进一步的,步骤S2中的历史记录包括view视图窗口和底部弹出窗口。
进一步的,步骤S4中goBack方法的具体操作是调用activity的finish方法,关闭当前webview页面,返回上一级的原生页面。
一种基于混合开发的android页面返回跳转***,包括安卓端监听模块、Web端监听模块、判断模块、web端返回模块和安卓***返回模块。其中,安卓端监听模块用于监听android物理返回键的单击事件;Web端监听模块用于监听web网页功能返回键的单击事件;判断模块,用于判断当前web页面的上级页面类型;web端返回模块,用于调用web端注册的goBack方法返回上级web页面;安卓***返回模块,用于调用安卓原生页面注册的goBack方法返回原生页面。
采用以上技术手段后可以获得以下优势:
本发明提出了一种基于混合开发的android页面返回跳转方法及其***,监听android返回键,在触发了返回操作后,调用backView方法查找$ionicHistory堆栈中的web端历史记录,判断当前页面的上级页面是不是web页面,结合判断结果调用goBack方法逐级返回,本发明方法加入判断机制,可以有效避免页面跳转错误的情况,帮助混合开发的androidAPP按照顺序返回页面。
附图说明
图1为本发明一种基于混合开发的android页面返回跳转方法的步骤流程图。
图2为一种基于混合开发的android页面返回跳转***的结构示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明:
一种基于混合开发的android页面返回跳转方法,如图1所示,具体包括以下步骤:
S1、原生***通过覆写Activity的onKeyDown方法拦截android物理返回键和web网页功能返回键,从而获取两者中任一个的单击事件。
S2、调用web页面注册的goBack方法,在goBack方法中调用$ionicHistory.backView方法查找$ionicHistory堆栈中的web端历史记录,判断当前web页面的上级页面类型;在本发明中,web端页面使用的框架是ionic框架,其默认封装使用$ionicHistoryAPI,Android通过WebView加载网页,并将web页面信息存储在$ionicHistory堆栈中,$ionicHistory堆栈存储的历史记录包括view视图窗口和底部弹出窗口,且这些历史记录按照用户打开的先后顺序存储。根据backView方法可以判断$ionicHistory堆栈中有无web页面信息,从而判断当前页面的上级页面类型。
S3、在本发明中,在JavascriptInterface的基础上通过使用第三方开源框架实现网页中的JS事件和Native 代码的交互。在web端注册goBack方法,当$ionicHistory堆栈中存在web端页面的历史记录,即上级页面是web页面时,调用$ionicHistory .goBack方法返回上级web页面。
S4、当$ionicHistory堆栈中没有web端页面的历史记录,即上级页面是原生页面时,调用android原生页面注册的goBack方法返回原生页面。原生页面的goBack方法中,通过调用activity的finish方法,关闭当前webview页面,返回到上一层的原生页面。
在本具体实施例中提供了本发明方法的部分代码,步骤S1的代码如下:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode==KeyEvent.KEYCODE_BACK)&& !isPageError) {
webView.callHandler("goBack", "hello good", newCallBackFunction() {
@Override
public void onCallBack(String data) {
}
});
return true;
}
return super.onKeyDown(keyCode, event);
}
步骤S3的代码如下:
nativeService.registerHandler("goBack", function (data, responseCallback){ if(popUpService.hasShow()){ popUpService.closePopAndModal();}else if($ionicHistory.backView()== null){ nativeService.nativeCall("goback"); }else{ $ionicHistory.goBack(); } });
步骤S4的代码如下:
webView.registerHandler("goback", new BridgeHandler() {
@Override
public void handler(String data, CallBackFunction function) {
function.onCallBack("goback");
finish();
}
});
一种基于混合开发的android页面返回跳转***,如图2所示,包括安卓端监听模块、Web端监听模块、判断模块、web端返回模块和安卓***返回模块。其中,安卓端监听模块用于监听android物理返回键的单击事件;Web端监听模块用于监听web网页功能返回键的单击事件;判断模块,用于判断当前web页面的上级页面类型;web端返回模块,用于调用web端注册的goBack方法返回上级web页面;安卓***返回模块,用于调用安卓原生页面注册的goBack方法返回原生页面。
上面结合附图对本发明的实施方式作了详细地说明,但是本发明并不局限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (5)
1.一种基于混合开发的android页面返回跳转方法,其特征在于,具体包括以下步骤:
S1、原生***通过覆写Activity的onKeyDown方法拦截android返回键,获取返回键的单击事件;
S2、调用web页面注册的goBack方法,在goBack方法中调用$ionicHistory .backView方法查找$ionicHistory堆栈中的web端历史记录,判断当前web页面的上级页面类型;
S3、当上级页面是web页面时,调用$ionicHistory .goBack方法返回上级web页面;
S4、当上级页面是原生页面时,调用android原生页面注册的goBack方法返回原生页面。
2.根据权利要求1所述的基于混合开发的android页面返回跳转方法,其特征在于,所述的android返回键包括android物理返回键和web网页功能返回键。
3.根据权利要求1所述的基于混合开发的android页面返回跳转方法,其特征在于,步骤S2中的历史记录包括view视图窗口和底部弹出窗口。
4.根据权利要求1所述的基于混合开发的android页面返回跳转方法,其特征在于,步骤S4中goBack方法的具体操作是调用activity的finish方法,关闭当前webview页面,返回上一级的原生页面。
5.一种基于混合开发的android页面返回跳转***,其特征在于,包括:
安卓端监听模块,用于监听android物理返回键的单击事件;
Web端监听模块,用于监听web网页功能返回键的单击事件;
判断模块,用于判断当前web页面的上级页面类型;
web端返回模块,用于调用web端注册的goBack方法返回上级web页面;
安卓***返回模块,用于调用安卓原生页面注册的goBack方法返回原生页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811588257.8A CN109740090A (zh) | 2018-12-25 | 2018-12-25 | 一种基于混合开发的android页面返回跳转方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811588257.8A CN109740090A (zh) | 2018-12-25 | 2018-12-25 | 一种基于混合开发的android页面返回跳转方法及其*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109740090A true CN109740090A (zh) | 2019-05-10 |
Family
ID=66359696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811588257.8A Pending CN109740090A (zh) | 2018-12-25 | 2018-12-25 | 一种基于混合开发的android页面返回跳转方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109740090A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175309A (zh) * | 2019-05-30 | 2019-08-27 | 四川长虹电器股份有限公司 | 移动应用混合开发的原生端资源池管理***及方法 |
CN110430473A (zh) * | 2019-07-18 | 2019-11-08 | 东软集团股份有限公司 | 视频播放的方法、装置、存储介质及电子设备 |
CN111258559A (zh) * | 2020-02-21 | 2020-06-09 | 南京新贝金服科技有限公司 | 一种基于React Native的混合应用多级页面路由跳转方法 |
CN111459481A (zh) * | 2020-03-26 | 2020-07-28 | 平安普惠企业管理有限公司 | 页面侧滑方法、装置、电子设备和存储介质 |
CN111831280A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 基于全局单例WebView容器的混合开发方法 |
CN112087651A (zh) * | 2020-09-18 | 2020-12-15 | 聚好看科技股份有限公司 | 显示询问信息的方法及智能电视 |
CN113536177A (zh) * | 2020-04-15 | 2021-10-22 | 武汉斗鱼鱼乐网络科技有限公司 | 一种页面跳转方法、装置、服务器和存储介质 |
CN113703760A (zh) * | 2020-05-22 | 2021-11-26 | 北京沃东天骏信息技术有限公司 | 一种页面跳转控制方法和装置 |
CN114356434A (zh) * | 2021-11-26 | 2022-04-15 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN115022454B (zh) * | 2022-06-24 | 2024-02-02 | 中国平安财产保险股份有限公司 | 一种安卓端返回操作方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777967A (zh) * | 2012-10-17 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 页面返回方法、页面生成方法和装置 |
CN105138340A (zh) * | 2015-09-15 | 2015-12-09 | 北京齐尔布莱特科技有限公司 | 一种Native与Web页面的交互方法和*** |
AU2016100915A4 (en) * | 2016-06-22 | 2016-07-14 | Moore, Luke Brett MR | Basically you touch your mobile device to the side of your desktop monitor, laptop screen or television display and the URL gets pushed across to your mobile device. A natural and human response for quickly moving from one display to a mobile device. The process can also go from mobile device to a larger display. Let's say, you are watching a YouTube video and you have to leave in a hurry but you want to keep watching, simply touch your mobile phone to the monitor and the url jumps to your mobile device. |
CN106371830A (zh) * | 2016-08-25 | 2017-02-01 | 北京量科邦信息技术有限公司 | 一种实现原生app和web页面关闭及后退控制的交互方法 |
CN107506430A (zh) * | 2017-08-22 | 2017-12-22 | 四川长虹电器股份有限公司 | 一种基于混合开发的路由控制方法及*** |
CN107679061A (zh) * | 2017-07-26 | 2018-02-09 | 上海壹账通金融科技有限公司 | 混合app的页面导航方法、装置、终端和存储介质 |
CN107844583A (zh) * | 2017-11-13 | 2018-03-27 | 深圳峰创智诚科技有限公司 | 应用程序页面返回的实现方法和装置 |
-
2018
- 2018-12-25 CN CN201811588257.8A patent/CN109740090A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777967A (zh) * | 2012-10-17 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 页面返回方法、页面生成方法和装置 |
CN105138340A (zh) * | 2015-09-15 | 2015-12-09 | 北京齐尔布莱特科技有限公司 | 一种Native与Web页面的交互方法和*** |
AU2016100915A4 (en) * | 2016-06-22 | 2016-07-14 | Moore, Luke Brett MR | Basically you touch your mobile device to the side of your desktop monitor, laptop screen or television display and the URL gets pushed across to your mobile device. A natural and human response for quickly moving from one display to a mobile device. The process can also go from mobile device to a larger display. Let's say, you are watching a YouTube video and you have to leave in a hurry but you want to keep watching, simply touch your mobile phone to the monitor and the url jumps to your mobile device. |
CN106371830A (zh) * | 2016-08-25 | 2017-02-01 | 北京量科邦信息技术有限公司 | 一种实现原生app和web页面关闭及后退控制的交互方法 |
CN107679061A (zh) * | 2017-07-26 | 2018-02-09 | 上海壹账通金融科技有限公司 | 混合app的页面导航方法、装置、终端和存储介质 |
CN107506430A (zh) * | 2017-08-22 | 2017-12-22 | 四川长虹电器股份有限公司 | 一种基于混合开发的路由控制方法及*** |
CN107844583A (zh) * | 2017-11-13 | 2018-03-27 | 深圳峰创智诚科技有限公司 | 应用程序页面返回的实现方法和装置 |
Non-Patent Citations (1)
Title |
---|
寒生1988: "Android小技巧:WebView回退", 《HTTPS://BLOG.CSDN.NET/BIHANSHENG2010/ARTICLE/DETAILS/50553574》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175309A (zh) * | 2019-05-30 | 2019-08-27 | 四川长虹电器股份有限公司 | 移动应用混合开发的原生端资源池管理***及方法 |
CN110175309B (zh) * | 2019-05-30 | 2022-01-28 | 四川长虹电器股份有限公司 | 移动应用混合开发的原生端资源池管理***及方法 |
CN110430473A (zh) * | 2019-07-18 | 2019-11-08 | 东软集团股份有限公司 | 视频播放的方法、装置、存储介质及电子设备 |
CN111258559A (zh) * | 2020-02-21 | 2020-06-09 | 南京新贝金服科技有限公司 | 一种基于React Native的混合应用多级页面路由跳转方法 |
CN111459481A (zh) * | 2020-03-26 | 2020-07-28 | 平安普惠企业管理有限公司 | 页面侧滑方法、装置、电子设备和存储介质 |
CN113536177A (zh) * | 2020-04-15 | 2021-10-22 | 武汉斗鱼鱼乐网络科技有限公司 | 一种页面跳转方法、装置、服务器和存储介质 |
CN113536177B (zh) * | 2020-04-15 | 2022-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | 一种页面跳转方法、装置、服务器和存储介质 |
CN113703760A (zh) * | 2020-05-22 | 2021-11-26 | 北京沃东天骏信息技术有限公司 | 一种页面跳转控制方法和装置 |
CN111831280A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 基于全局单例WebView容器的混合开发方法 |
CN112087651A (zh) * | 2020-09-18 | 2020-12-15 | 聚好看科技股份有限公司 | 显示询问信息的方法及智能电视 |
CN112087651B (zh) * | 2020-09-18 | 2022-02-01 | 聚好看科技股份有限公司 | 显示询问信息的方法及智能电视 |
CN114356434A (zh) * | 2021-11-26 | 2022-04-15 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN114356434B (zh) * | 2021-11-26 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN115022454B (zh) * | 2022-06-24 | 2024-02-02 | 中国平安财产保险股份有限公司 | 一种安卓端返回操作方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740090A (zh) | 一种基于混合开发的android页面返回跳转方法及其*** | |
CN103414824B (zh) | 一种基于移动终端的自动登录处理方法及*** | |
CN102841789B (zh) | 一种对浏览器中的用户操作进行录制和回放的方法和装置 | |
CN101938568B (zh) | 一种信息定位方法、***及移动终端 | |
CN104426944B (zh) | 信息反馈方法、装置及终端 | |
CN107924288A (zh) | 电子设备及其使用语音识别来执行功能的方法 | |
CN107357580A (zh) | 一种引导终端用户打开应用的辅助功能权限的方法 | |
CN103164229A (zh) | 一种清理移动终端进程的方法及装置 | |
CN103812990B (zh) | 终端设备及其控制方法 | |
JP2008508597A (ja) | ヘルプユーティリティアプリケーションプログラム | |
CN108595231A (zh) | 应用程序预加载方法、装置、存储介质及智能终端 | |
CN109213667A (zh) | 一种Android***的异常处理方法及电子设备 | |
CN105843710A (zh) | 数据备份和恢复装置及方法 | |
CN106357866A (zh) | 一种通讯录管理方法及移动智能终端 | |
CN109271223A (zh) | 窗口切换方法、装置、终端及计算机可读存储介质 | |
CN108984255B (zh) | 一种远程协助方法及相关设备 | |
CN109634604A (zh) | 基于混合开发的iOS页面跳转方法及其*** | |
CN106095065A (zh) | 一种模式切换方法及装置 | |
CN104808933B (zh) | 智能终端的解锁控制方法和装置 | |
CN103533153A (zh) | 基于移动终端的揺一揺呼救机制 | |
CN107229489A (zh) | 一种多应用智能卡及其应用选择方法及装置 | |
CN105933497A (zh) | 一种多模式的来电拦截方法与装置 | |
US20120278078A1 (en) | Input and displayed information definition based on automatic speech recognition during a communication session | |
CN107332963A (zh) | 一种号码设置方法及终端 | |
CN105302702A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190510 |
|
RJ01 | Rejection of invention patent application after publication |