CN115022454A - 一种安卓端返回操作方法、装置、电子设备及存储介质 - Google Patents
一种安卓端返回操作方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115022454A CN115022454A CN202210722329.3A CN202210722329A CN115022454A CN 115022454 A CN115022454 A CN 115022454A CN 202210722329 A CN202210722329 A CN 202210722329A CN 115022454 A CN115022454 A CN 115022454A
- Authority
- CN
- China
- Prior art keywords
- event
- return key
- physical return
- physical
- monitored
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000012544 monitoring process Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000009191 jumping Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72445—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72466—User interfaces specially adapted for cordless or mobile telephones with selection means, e.g. keys, having functions defined by the mode or the status of the device
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种安卓端返回操作方法、装置、电子设备及计算机可读存储介质。本发明提供的安卓端返回操作方法,包括:定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。本发明提供的安卓端返回操作方法,可以比较灵活地实现对预设页面的返回跳转操作,同时,还可以很好的兼容各个安卓手机机型。
Description
技术领域
本发明涉及页面返回操作技术领域,尤其涉及一种安卓端返回操作方法、装置、电子设备及计算机可读存储介质。
背景技术
在H5页面中,用户体验的重要性是不言而喻的,页面之间的返回跳转方式以及是否跳转到正确的页面是其中的关键。有时会遇到一些特殊的页面切换场景,比如从一个福利活动页面,点击按钮进入到活动领取页面,填写收件人信息后会跳转到领取成功的页面,这时候,当用户点击返回时,理想情况是希望用户可以直接返回跳回到福利活动页面,但是由于安卓机上物理返回键默认操作是返回上一页,也就是活动领取页面,这种不够灵活的返回跳转方式,会影响到用户的体验。除此之外,现有的页面返回跳转方案无法很好的兼容各个安卓手机机型。
发明内容
本发明的目的在于提供一种安卓端返回操作方法、装置、电子设备及计算机可读存储介质,以解决现有技术中返回跳转方式不够灵活以及无法很好的兼容各个安卓手机机型的技术问题。
本发明的技术方案如下,提供了一种安卓端返回操作方法,包括:
定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
进一步地,订阅所述监听物理返回键事件,将所述监听物理返回键事件进行发布,包括:通过EventBus.register方法订阅所述监听物理返回键事件,通过EventBus.post方法对所述监听物理返回键事件进行发布。
进一步地,所述设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
进一步地,所述在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
进一步地,所述安卓端返回操作方法还包括,将所述监听物理返回键事件发送至H5端时,取消默认的***事件。
进一步地,所述安卓端返回操作方法,所述使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:通过EventBus.on的方式使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
进一步地,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:
在拦截到所述物理返回键事件时,将所述物理返回键事件传入至页面跳转方法中,以执行预设页面的跳转。
本发明的另一技术方案如下,提供了一种安卓端返回操作装置,包括事件发布模块、事件监听模块及页面跳转模块;
所述事件发布模块,用于定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
所述事件监听模块,用于设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
所述页面跳转模块,用于使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
本发明的另一技术方案如下,提供了一种电子设备,包括存储器、处理器,所述存储器存储有可被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项技术方案所述的安卓端返回操作方法。
本发明的另一技术方案如下,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项技术方案所述的安卓端返回操作方法。
本发明的有益效果在于:通过定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;并通过设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;通过使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转;可以比较灵活地实现对预设页面的返回跳转操作,同时,还可以很好的兼容各个安卓手机机型。
附图说明
图1为本发明实施例的安卓端返回操作方法的流程示意图;
图2为本发明本发明实施例的安卓端返回操作装置的结构示意图;
图3为本发明实施例的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明实施例的安卓端返回操作方法的流程示意图。需注意的是,若有实质上相同的结果,本发明提供的安卓端返回操作方法并不以图1所示的流程顺序为限。如图1所示,该安卓端返回操作方法,主要包括以下步骤:
S1,定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
其中,在订阅所述监听物理返回键事件前,首先需要设置所监听的物理返回键事件类型,订阅一个事件,即为事件提供相应的代码,在事件发生时执行该相应的代码。
S2,设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
其中,H5端是一系列制作网页互动效果的技术集合,H5为移动端的web页面。
S3,使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
本发明实施例提供的安卓端返回操作方法,通过定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;并通过设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;通过使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转;可以比较灵活地实现对预设页面的返回跳转操作,同时,还可以很好的兼容各个安卓手机机型。
在一个可选的实施方式中,订阅所述监听物理返回键事件,将所述监听物理返回键事件进行发布,包括:通过EventBus.register方法订阅所述监听物理返回键事件,通过EventBus.post方法对所述监听物理返回键事件进行发布。
一个具体实施例中,通过EventBus事件总线来实现安卓端和H5端的消息传输,在安卓端定义一个监听物理返回键事件的事件类型,将该监听物理返回键的事件命名为onBackPressed,该监听物理返回键的事件类型可以接受一个函数作为入参,通过EventBus.register('onBackPressed')的方式订阅该监听物理返回键的事件onBackPressed事件,通过EventBus.post(new onBackPressed(函数))的方式对该监听物理返回键的事件进行发布,用以监听H5端的处理。
其中,EventBus又称为事件总线,在Vue中可以使用EventBus来作为沟通桥梁的概念,就像是所有组件共用相同的事件中心,可以向该中心注册发送事件或接收事件,所以组件都可以上下平行地通知其他组件,但也就是太方便所以若使用不慎,就会造成难以维护的灾难。EventBus可以代替安卓传统的Intent、Handler、Broadcast或接口函数,在Fragment、Activity、Service线程之间传递数据以及执行方法。EventBus底层采用的是注解和反射的方式来获取订阅方法信息,当前订阅者是添加到Eventbus总的事件订阅者的subscriptionByEventType集合中,订阅者所有订阅的事件类型添加到typeBySubscriber中,方便解注册时,移除事件。对于EventBus黏性事件的使用,EventBus为每个类(class)保存了最近一次被发送的事件sticky,后续被发送过来的相同类型的sticky事件会自动替换之前缓存的事件,当一个监听者向EventBus进行注册时,它会去请求缓存事件,这时,缓存的事件就会立即自动发送给这个监听者。
在使用EventBus事件总线时,首先需要创建事件总线并将其导出,以便其它模块可以使用或者监听它,这个过程也称之为EventBus事件总线的初始化,然后进行发送事件、接收事件以及移除事件监听者。如前所述,如果EventBus事件使用不善,将会造成灾难,例如,在某一个页面刷新了之后,与之相关的EventBus会被移除,就会导致业务无法进行下去,如果业务有反复操作的页面,EventBus在监听的时候就会触发很多次,也是一个非常大的隐患,这就需要处理好EventBus在项目中的关系,通常会在页面销毁时,同时移除EventBus事件监听。
具体实施时,定义监听物理返回键事件的事情类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布的部分代码,如下,
public class onBackPressed{
public Function fn;
public onBackPressed(Function fn){fn()}}
EventBus.register('onBackPressed')
EventBus.post(new onBackPressed('eventBus发送的消息')
其中,上述代码中的第一行表示,定义一个事件类型onBackPressed,将其用来作为监听物理返回键事件;上述代码中的第二行表示,定义事件的传入参数(入参),在入参处接收一个函数fn;上述代码中的第三行表示执行传入的函数,上述代码中的第四行表示订阅监听物理返回键事件onBackPressed,上述代码中的第五行表示发布监听物理返回键事件onBackPressed。
在一个可选的实施方式中,所述设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
一个具体实施例中,在安卓端定义onKeyDown方法,该onKeyDown方法可以接受两个入参,这个两个入参分别为按键编码keyCode和按键事件KeyEvent,当监听到用户触发的按键编码keyCode等于按键事件KeyEvent中物理返回键的编码值时,触发所述监听物理返回键事件。
需要说明的是,当安卓设备上的物理按键被按下的时候,程序会回调onKeyDown()方法,该方法是接口KeyEvent.Callback中的抽象方法,安卓程序中所有的View都实现了KeyEvent.Ccallback接口并重写了onKeyDown()方法,该方法主要用于捕捉手机键盘被按下的事件。在onKeyDown方法中,keyCode表示被按下的按键编码,设备的按键中的被一个按钮都会有其单独的按键编码,在程序中是根据按键编码知道用户按下的是哪一个键。onKeyDown方法中的event表示按键事件的对象,其中包含了触发事件的详情信息,例如事件的状态、事件的类型、事件的发生时间等,当用户按下按键时,***会自动将事件封装成KeyEvent对象供应用程序使用,onKeyDown()方法中的返回值,是一个Boolean类型的变量,当返回值为true时,表示已经完整处理了事件,并不希望其他的回调方法再次进行处理,当返回false时,表示并没有处理完事件,更希望其他回调方法对其进行处理。
在一个可选的实施方式中,所述在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
一个具体实施例中,在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,对应的部分代码,如下,
public static onKeyDown(int keyCode,KeyEvent event){
if(keyCode===event.KEYCODE_BACK){
onBackPressed(fn)
}}
其中,上述代码中第一行表示,利用函数方法onKeyDown,传入物理键的按键编码keyCode,和点击按键的事件(按键事件)KeyEvent,上述代码中的第二行中,event.KEYCODE_BACK表示的物理返回键的编码值,上述代码中的第二行表示当接收到的keyCode编码和该编码一致时,执行下一步,上述代码中的第三行表示将物理返回键事件交由H5端处理。
在一个可选的实施方式中,所述安卓端返回操作方法还包括,将所述监听物理返回键事件发送至H5端时,取消默认的***事件。
需要说明的是,在将所述监听物理返回键事件发送至H5端时,同时屏蔽掉默认方法,以取消默认的***事件。
在一个可选的实施方式中,所述使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:通过EventBus.on的方式使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
在一个可选的实施方式中,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:
在拦截到所述物理返回键事件时,将所述物理返回键事件传入至页面跳转方法中,以执行预设页面的跳转。
一个具体实施例中,使H5端通过EventBus.on('onBackPressed')的方式拦截onBackPressed事件并且传入页面跳转方法routeTo(PageA),以控制需要返回的页面,即让页面返回到需要返回的页面;使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,对应的部分代码,如下,
EventBus.on('onBackPressed',routeTo(PageA))routeTo(PageA)
其中,上述代码是在H5端中执行的,routeTo(PageA)表示跳转到另一个H5端页面PageA,页面PageA为预设页面。
一个具体实施例中,为了使H5端浏览器返回跳转至指定页面,也可在当前页面中加入代码window.addEventListener(‘popstate’,function,false),其中,popstate是一种H5浏览器事件,当页面作出浏览器动作,即页面发生改变时该H5浏览器事件将会被触发,不同的览器在处理popstate事件的形式存在差异,chrome浏览器和safari通常会触发,但FireFox不会触发,并且history.pushState()和history.replaceState()也不会触发该H5浏览器事件。window.addEventListener中传的第二个参数function为一个函数,表示当页面监听到页面发生变化,比如页面监听到点击物理返回键,此时页面需执行的自定义方法,该自定义方式可以为history.pushState(null,null,页面A),即可改变页面路由,页面从当前页面变为页面A,需要说明的是,此时页面内容并没有切换为页面A,因此,还需要额外的执行window.reload()来加载页面A的内容。window.addEventListener传入的第三个参数为false,false表示阻止浏览器的默认事件,这样就避免在当前中点击返回时,返回到了上一页面,第三个参数false还可以为true。
需要说明的是,若只需要对当前页面进行监听,则在当前页面离开后,需要对popstate事件取消监听,代码为window.removeEventListener(‘popstate’,function,false),这样可以避免对页面过度的监听,导致出现意外的页面变化。在上述实施例中浏览器的每次执行返回操作都会消耗一个history实体,如果用户中断了返回,需要继续pushState一个实体,也就是重新跳转到离开前的页面。其次,pushState只能有一个实体,若有多个实体,当页面返回时会发生错误。所以在调用history.pushState()方法前,可以先使用window.history.state来查询是否存在已添加的实体。
本发明实施例提供的安卓端返回操作方法,通过定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转;可以比较灵活地实现对预设页面的返回跳转操作,同时,可以很好的兼容各个安卓手机机型。
本发明实施例通过安卓端与H5端配合的方式,可以更好的兼容各种安卓手机机型以及webview浏览器版本等带来的兼容问题,安卓端通过eventbus消息机制将页面的控制交给H5端,可以使页面交互更加灵活,极大的提升用户体验,可以满足不同业务场景下的需求。
本发明实施例提供的安卓端返回操作方法,可以基于人工智能进行构建,基于人工智能技术对相关的数据进行获取和处理,实现无人值守的人工智能的安卓端返回操作。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
图2是本发明实施例的安卓端返回操作装置的结构示意图,如图2所示,该安卓端返回操作装置20包括事件发布模块21、事件监听模块22及页面跳转模块23;
所述事件发布模块21,用于定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
所述事件监听模块22,用于设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
所述页面跳转模块23,用于使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
本发明实施例提供的安卓端返回操作装置,通过事件发布模块定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;通过事件监听模块设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;通过页面跳转模块使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转;可以比较灵活地实现对预设页面的返回跳转操作,同时,可以很好的兼容各个安卓手机机型。
其中,其中,在订阅所述监听物理返回键事件前,首先需要设置所监听的物理返回键事件类型,订阅一个事件,即为事件提供相应的代码,在事件发生时执行该相应的代码。H5端是一系列制作网页互动效果的技术集合,H5为移动端的web页面。
在一个可选的实施方式中,该事件发布模块21,订阅所述监听物理返回键事件,将所述监听物理返回键事件进行发布,包括:该事件发布模块21,通过EventBus.register方法订阅所述监听物理返回键事件,通过EventBus.post方法对所述监听物理返回键事件进行发布。
一个具体实施例中,通过EventBus事件总线来实现安卓端和H5端的消息传输,在安卓端定义一个监听物理返回键事件的事件类型,将该监听物理返回键的事件命名为onBackPressed,该监听物理返回键的事件类型可以接受一个函数作为入参,通过EventBus.register('onBackPressed')的方式订阅该监听物理返回键的事件onBackPressed事件,通过EventBus.post(new onBackPressed(函数))的方式对该监听物理返回键的事件进行发布,用以监听H5端的处理。
其中,EventBus又称为事件总线,在Vue中可以使用EventBus来作为沟通桥梁的概念,就像是所有组件共用相同的事件中心,可以向该中心注册发送事件或接收事件,所以组件都可以上下平行地通知其他组件,但也就是太方便所以若使用不慎,就会造成难以维护的灾难。EventBus可以代替安卓传统的Intent、Handler、Broadcast或接口函数,在Fragment、Activity、Service线程之间传递数据以及执行方法。EventBus底层采用的是注解和反射的方式来获取订阅方法信息,当前订阅者是添加到Eventbus总的事件订阅者的subscriptionByEventType集合中,订阅者所有订阅的事件类型添加到typeBySubscriber中,方便解注册时,移除事件。对于EventBus黏性事件的使用,EventBus为每个类(class)保存了最近一次被发送的事件sticky,后续被发送过来的相同类型的sticky事件会自动替换之前缓存的事件,当一个监听者向EventBus进行注册时,它会去请求缓存事件,这时,缓存的事件就会立即自动发送给这个监听者。
在使用EventBus事件总线时,首先需要创建事件总线并将其导出,以便其它模块可以使用或者监听它,这个过程也称之为EventBus事件总线的初始化,然后进行发送事件、接收事件以及移除事件监听者。如前所述,如果EventBus事件使用不善,将会造成灾难,例如,在某一个页面刷新了之后,与之相关的EventBus会被移除,就会导致业务无法进行下去,如果业务有反复操作的页面,EventBus在监听的时候就会触发很多次,也是一个非常大的隐患,这就需要处理好EventBus在项目中的关系,通常会在页面销毁时,同时移除EventBus事件监听。
另一个具体实施例中,具体实施时,定义监听物理返回键事件的事情类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布的部分代码,如下,
public class onBackPressed{
public Function fn;
public onBackPressed(Function fn){fn()}}
EventBus.register('onBackPressed')
EventBus.post(new onBackPressed('eventBus发送的消息')
其中,上述代码中的第一行表示,定义一个事件类型onBackPressed,将其用来作为监听物理返回键事件;上述代码中的第二行表示,定义事件的传入参数(入参),在入参处接收一个函数fn;上述代码中的第三行表示执行传入的函数,上述代码中的第四行表示订阅监听物理返回键事件onBackPressed,上述代码中的第五行表示发布监听物理返回键事件onBackPressed。
在一个可选的实施方式中,该事件监听模块22,设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,包括:该事件监听模块22,在onKeyDown()方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown()方法触发所述监听物理返回键事件。
一个具体实施例中,在安卓端定义onKeyDown()方法,该onKeyDown()方法可以接受两个入参,这个两个入参分别为按键编码keyCode和按键事件KeyEvent,当监听到用户触发的按键编码keyCode等于按键事件KeyEvent中物理返回键的编码值时,触发所述监听物理返回键事件。
其中,当安卓设备上的物理按键被按下的时候,程序会回调onKeyDown方法(即为onKeyDown()方法),该方法是接口KeyEvent.Callback中的抽象方法,安卓程序中所有的View都实现了KeyEvent.Ccallback接口并重写了onKeyDown方法,该方法主要用于捕捉手机键盘被按下的事件。在onKeyDown方法中,keyCode表示被按下的按键编码,设备的按键中的被一个按钮都会有其单独的按键编码,在程序中是根据按键编码知道用户按下的是哪一个键。onKeyDown方法中的event表示按键事件的对象,其包含了触发事件的详情信息,例如事件的状态、事件的类型、事件的发生时间等,当用户按下按键时,***会自动将事件封装成KeyEvent对象供应用程序使用,onKeyDown方法中的返回值,是一个Boolean类型的变量,当返回值为true时,表示已经完整处理了事件,并不希望其他的回调方法再次进行处理,当返回false时,表示并没有处理完事件,更希望其他回调方法对其进行处理。
在一个可选的实施方式中,该事件监听模块22,在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,包括:该事件监听模块22,在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
一个具体实施例中,在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,对应的部分代码,如下,
public static onKeyDown(int keyCode,KeyEvent event){
if(keyCode===event.KEYCODE_BACK){
onBackPressed(fn)
}}
其中,上述代码中第一行表示,利用函数方法onKeyDown,传入物理键的按键编码keyCode,和点击按键的事件(按键事件)KeyEvent,上述代码中的第二行中,event.KEYCODE_BACK表示的物理返回键的编码值,上述代码中的第二行表示当接收到的keyCode编码和该编码一致时,执行下一步,上述代码中的第三行表示将物理返回键事件交由H5端处理。
在一个可选的实施方式中,该页面跳转模块22还包括,将所述监听物理返回键事件发送至H5端时,取消默认的***事件。
在一个可选的实施方式中,该页面跳转模块23,使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:该页面跳转模块23,通过EventBus.on的方式使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
在一个可选的实施方式中,该页面跳转模块23,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:该页面跳转模块23,在拦截到所述物理返回键事件时,将所述物理返回键事件传入至页面跳转方法中,以执行预设页面的跳转。
一个具体实施例中,使H5端通过EventBus.on('onBackPressed')的方式拦截onBackPressed事件并且传入页面跳转方法routeTo(PageA),以控制需要返回的页面,即让页面返回到需要返回的页面;使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,对应的部分代码,如下,
EventBus.on('onBackPressed',routeTo(PageA))routeTo(PageA)
其中,上述代码是在H5端中执行的,routeTo(PageA)表示跳转到另一个H5端页面PageA,页面PageA为预设页面。
一个具体实施例中,为了使H5端浏览器返回跳转至指定页面,也可在当前页面中加入代码window.addEventListener(‘popstate’,function,false),其中,popstate是一种H5浏览器事件,当页面作出浏览器动作,即页面发生改变时该H5浏览器事件将会被触发,不同的览器在处理popstate事件的形式存在差异,chrome浏览器和safari通常会触发,但FireFox不会触发,并且history.pushState()和history.replaceState()也不会触发该H5浏览器事件。window.addEventListener中传的第二个参数function为一个函数,表示当页面监听到页面发生变化,比如页面监听到点击物理返回键,此时页面需执行的自定义方法,该自定义方式可以为history.pushState(null,null,页面A),即可改变页面路由,页面从当前页面变为页面A,需要说明的是,此时页面内容并没有切换为页面A,因此,还需要额外的执行window.reload()来加载页面A的内容。window.addEventListener传入的第三个参数为false,false表示阻止浏览器的默认事件,这样就避免在当前中点击返回时,返回到了上一页面,第三个参数false还可以为true。
需要说明的是,若只需要对当前页面进行监听,则在当前页面离开后,需要对popstate事件取消监听,代码为window.removeEventListener(‘popstate’,function,false),这样可以避免对页面过度的监听,导致出现意外的页面变化。在上述实施例中浏览器的每次执行返回操作都会消耗一个history实体,如果用户中断了返回,需要继续pushState一个实体,也就是重新跳转到离开前的页面。其次,pushState只能有一个实体,若有多个实体,当页面返回时会发生错误。所以在调用history.pushState()方法前,可以先使用window.history.state来查询是否存在已添加的实体。
本发明实施例提供的安卓端返回操作装置,通过事件发布模块定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;通过事件监听模块设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;通过页面跳转模块使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转;可以比较灵活地实现对预设页面的返回跳转操作,同时,可以很好的兼容各个安卓手机机型。本发明实施例通过安卓端与H5端配合的方式,可以更好的兼容各种安卓手机机型以及webview浏览器版本等带来的兼容问题,安卓端通过eventbus消息机制将页面的控制交给H5端,可以使页面交互更加灵活,极大的提升用户体验,可以满足不同业务场景下的需求。
图3是本发明实施例的电子设备的结构示意图。如图3所示,该电子设备30包括处理器31及和处理器31通信连接的存储器32。
存储器32存储有用于实现上述任一实施例的所述安卓端返回操作方法的程序指令。
处理器31用于执行存储器32存储的程序指令以进行代码测试。
其中,处理器31还可以称为CPU(Central Processing Unit,中央处理单元)。处理器31可能是一种集成电路芯片,具有信号的处理能力。处理器31还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本发明实施例提供一种存储介质,本发明实施例的存储介质存储有能够实现上述所有方法的程序指令,所述存储介质可以是非易失性,也可以是易失性。其中,该程序指令可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
Claims (10)
1.一种安卓端返回操作方法,其特征在于,包括如下步骤:
定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
2.根据权利要求1所述的安卓端返回操作方法,其特征在于,订阅所述监听物理返回键事件,将所述监听物理返回键事件进行发布,包括:通过EventBus.register方法订阅所述监听物理返回键事件,通过EventBus.post方法对所述监听物理返回键事件进行发布。
3.根据权利要求1所述的安卓端返回操作方法,其特征在于,所述设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
4.根据权利要求3所述的安卓端返回操作方法,其特征在于,所述在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
5.根据权利要求1所述的安卓端返回操作方法,其特征在于,还包括,将所述监听物理返回键事件发送至H5端时,取消默认的***事件。
6.根据权利要求1所述的安卓端返回操作方法,其特征在于,所述使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:通过EventBus.on的方式使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
7.根据权利要求1所示的安卓端返回操作方法,其特征在于,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:
在拦截到所述物理返回键事件时,将所述物理返回键事件传入至页面跳转方法中,以执行预设页面的跳转。
8.一种安卓端返回操作装置,其特征在于,包括事件发布模块、事件监听模块及页面跳转模块;
所述事件发布模块,用于定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
所述事件监听模块,用于设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
所述页面跳转模块,用于使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
9.一种电子设备,包括存储器、处理器,所述存储器存储有可被所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的安卓端返回操作方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的安卓端返回操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210722329.3A CN115022454B (zh) | 2022-06-24 | 2022-06-24 | 一种安卓端返回操作方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210722329.3A CN115022454B (zh) | 2022-06-24 | 2022-06-24 | 一种安卓端返回操作方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115022454A true CN115022454A (zh) | 2022-09-06 |
CN115022454B CN115022454B (zh) | 2024-02-02 |
Family
ID=83076769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210722329.3A Active CN115022454B (zh) | 2022-06-24 | 2022-06-24 | 一种安卓端返回操作方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115022454B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220403A (zh) * | 2021-05-29 | 2021-08-06 | 长沙市到家悠享家政服务有限公司 | h5拦截Android返回事件的方法、装置及电子设备 |
CN113452579A (zh) * | 2021-06-29 | 2021-09-28 | 平安普惠企业管理有限公司 | H5页面加载方法、装置、计算机设备及存储介质 |
CN114428657A (zh) * | 2022-01-11 | 2022-05-03 | 上海万物新生环保科技集团有限公司 | 一种在H5端基于Taro框架的滑动方法与设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740090A (zh) * | 2018-12-25 | 2019-05-10 | 南京天溯自动化控制***有限公司 | 一种基于混合开发的android页面返回跳转方法及其*** |
CN109814965B (zh) * | 2019-01-10 | 2021-06-04 | 北京城市网邻信息技术有限公司 | H5页面的处理方法、装置、电子设备及存储介质 |
CN109840418B (zh) * | 2019-02-19 | 2021-01-01 | Oppo广东移动通信有限公司 | 应用程序的跳转控制方法、装置、存储介质及终端 |
CN110362761B (zh) * | 2019-06-27 | 2023-02-07 | 上海淇馥信息技术有限公司 | 一种基于网页地址监听的网页跳转方法、装置和电子设备 |
CN114610386A (zh) * | 2022-03-10 | 2022-06-10 | 平安国际智慧城市科技股份有限公司 | H5与应用程序的交互方法、装置、设备及存储介质 |
-
2022
- 2022-06-24 CN CN202210722329.3A patent/CN115022454B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220403A (zh) * | 2021-05-29 | 2021-08-06 | 长沙市到家悠享家政服务有限公司 | h5拦截Android返回事件的方法、装置及电子设备 |
CN113452579A (zh) * | 2021-06-29 | 2021-09-28 | 平安普惠企业管理有限公司 | H5页面加载方法、装置、计算机设备及存储介质 |
CN114428657A (zh) * | 2022-01-11 | 2022-05-03 | 上海万物新生环保科技集团有限公司 | 一种在H5端基于Taro框架的滑动方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115022454B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301443B (zh) | 一种在web页面上调用端能力接口的方法和*** | |
CN108763060A (zh) | Android***中Native层崩溃溯源方法、装置、存储介质及终端 | |
CN110765395B (zh) | 一种用于提供小说信息的方法与设备 | |
CN107678782B (zh) | 一种进程保护方法、装置、设备以及计算机可读存储介质 | |
CN110795353A (zh) | 快应用的调试方法、装置、设备及存储介质 | |
CN110928706B (zh) | 小程序交互方法、装置、电子设备及存储介质 | |
CN108132832B (zh) | 应用程序启动方法和装置 | |
CN108509228B (zh) | 加载页面的方法、终端设备及计算机可读存储介质 | |
CN115022454A (zh) | 一种安卓端返回操作方法、装置、电子设备及存储介质 | |
CN110221830B (zh) | 一种在PC上加载WebView的方法及*** | |
CN109688232B (zh) | 一种镜像回溯方法、镜像回溯***及代理服务器 | |
WO2018196613A1 (zh) | 一种基于功能开关的应用程序控制方法、装置、服务器及介质 | |
CN112084099B (zh) | 基于主机获取报警状态值的方法、装置、设备及存储介质 | |
CN111338609B (zh) | 信息获取方法、装置、存储介质及终端 | |
CN109640140B (zh) | 按键处理方法和装置 | |
CN112612474A (zh) | 产品移植方法、装置、存储介质和电子设备 | |
CN113342341A (zh) | 一种页面创建方法、装置、***及存储介质 | |
CN108874557B (zh) | 一种前端接口处理方法及*** | |
WO2020025016A1 (zh) | 多页面通信的节点初始化 | |
CN114817166B (zh) | 一种取消文件操作的方法、装置及介质 | |
CN113535021B (zh) | 一种用于发送会话消息的方法、设备、介质及程序产品 | |
CN108271055B (zh) | 基于rn组件的响应用户操作动作的处理方法及装置 | |
CN112199130B (zh) | 绑定函数执行方法、装置、设备和存储介质 | |
CN112954790B (zh) | 自注册方法及装置、计算机可存储介质 | |
CN110532070B (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 |