CN115022454B - 一种安卓端返回操作方法、装置、电子设备及存储介质 - Google Patents

一种安卓端返回操作方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115022454B
CN115022454B CN202210722329.3A CN202210722329A CN115022454B CN 115022454 B CN115022454 B CN 115022454B CN 202210722329 A CN202210722329 A CN 202210722329A CN 115022454 B CN115022454 B CN 115022454B
Authority
CN
China
Prior art keywords
event
return key
physical return
physical
key 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.)
Active
Application number
CN202210722329.3A
Other languages
English (en)
Other versions
CN115022454A (zh
Inventor
刁伟栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202210722329.3A priority Critical patent/CN115022454B/zh
Publication of CN115022454A publication Critical patent/CN115022454A/zh
Application granted granted Critical
Publication of CN115022454B publication Critical patent/CN115022454B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72445User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72466User 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

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 (8)

1.一种安卓端返回操作方法,其特征在于,包括如下步骤:
定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,屏蔽掉默认方法,以取消默认的系统事件,将所述物理返回键事件传入至页面跳转方法中,使H5端执行预设页面的跳转。
2.根据权利要求1所述的安卓端返回操作方法,其特征在于,订阅所述监听物理返回键事件,将所述监听物理返回键事件进行发布,包括:通过EventBus.register方法订阅所述监听物理返回键事件,通过EventBus.post方法对所述监听物理返回键事件进行发布。
3.根据权利要求1所述的安卓端返回操作方法,其特征在于,所述设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
4.根据权利要求3所述的安卓端返回操作方法,其特征在于,所述在onKeyDown方法中传入物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件,包括:
在onKeyDown方法中传入物理返回键的编码值以及按键事件,当按键事情监听到用户的按键编码与所述物理返回键的编码值一致,使onKeyDown方法触发所述监听物理返回键事件。
5.根据权利要求1所述的安卓端返回操作方法,其特征在于,所述使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转,包括:通过EventBus.on的方式使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,使H5端执行预设页面的跳转。
6.一种安卓端返回操作装置,其特征在于,包括事件发布模块、事件监听模块及页面跳转模块;
所述事件发布模块,用于定义监听物理返回键事件的事件类型,订阅所述监听物理返回键事件,对所述监听物理返回键事件进行发布;
所述事件监听模块,用于设置物理返回键的编码值,当监听到用户的按键编码与所述物理返回键的编码值一致,则触发所述监听物理返回键事件,并将所述监听物理返回键事件发送至H5端;
所述页面跳转模块,用于使H5端拦截所述物理返回键事件,在拦截到所述物理返回键事件时,屏蔽掉默认方法,以取消默认的系统事件,将所述物理返回键事件传入至页面跳转方法中,使H5端执行预设页面的跳转。
7.一种电子设备,包括存储器、处理器,所述存储器存储有可被所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的安卓端返回操作方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的安卓端返回操作方法。
CN202210722329.3A 2022-06-24 2022-06-24 一种安卓端返回操作方法、装置、电子设备及存储介质 Active CN115022454B (zh)

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 CN115022454A (zh) 2022-09-06
CN115022454B true 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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740090A (zh) * 2018-12-25 2019-05-10 南京天溯自动化控制系统有限公司 一种基于混合开发的android页面返回跳转方法及其系统
CN109814965A (zh) * 2019-01-10 2019-05-28 北京城市网邻信息技术有限公司 H5页面的处理方法、装置、电子设备及存储介质
CN109840418A (zh) * 2019-02-19 2019-06-04 Oppo广东移动通信有限公司 应用程序的跳转控制方法、装置、存储介质及终端
CN110362761A (zh) * 2019-06-27 2019-10-22 上海淇馥信息技术有限公司 一种基于网页地址监听的网页跳转方法、装置和电子设备
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框架的滑动方法与设备
CN114610386A (zh) * 2022-03-10 2022-06-10 平安国际智慧城市科技股份有限公司 H5与应用程序的交互方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740090A (zh) * 2018-12-25 2019-05-10 南京天溯自动化控制系统有限公司 一种基于混合开发的android页面返回跳转方法及其系统
CN109814965A (zh) * 2019-01-10 2019-05-28 北京城市网邻信息技术有限公司 H5页面的处理方法、装置、电子设备及存储介质
CN109840418A (zh) * 2019-02-19 2019-06-04 Oppo广东移动通信有限公司 应用程序的跳转控制方法、装置、存储介质及终端
CN110362761A (zh) * 2019-06-27 2019-10-22 上海淇馥信息技术有限公司 一种基于网页地址监听的网页跳转方法、装置和电子设备
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框架的滑动方法与设备
CN114610386A (zh) * 2022-03-10 2022-06-10 平安国际智慧城市科技股份有限公司 H5与应用程序的交互方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN115022454A (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
US11070648B2 (en) Offline client replay and sync
US20200357007A1 (en) Page data acquisition method, apparatus, server, electronic device and computer readable medium
CN110097364A (zh) 区块链智能合约模块化生成方法、系统、终端及存储介质
CN108415804A (zh) 获取信息的方法、终端设备及计算机可读存储介质
CN110598135A (zh) 网络请求处理方法、装置、计算机可读介质及电子设备
CN111522711A (zh) 一种数据监控处理系统、方法、执行端、监控端及电子设备
CN103309752A (zh) 组件间通信的方法及系统和通信处理器
CN108780409B (zh) 通用通知流水线
CN110928706B (zh) 小程序交互方法、装置、电子设备及存储介质
CN115022454B (zh) 一种安卓端返回操作方法、装置、电子设备及存储介质
WO2013143407A1 (en) Data processing, data collection
CN113868502A (zh) 一种页面爬虫方法、装置、电子设备及可读存储介质
CN107633026B (zh) 数据同步异常处理方法、装置及服务器
GB2521637A (en) Messaging digest
CN108509228A (zh) 加载页面的方法、终端设备及计算机可读存储介质
CN116302895A (zh) 一种基于Javascript的用户行为收集方法、装置、设备及介质
CN111176987A (zh) 前端日志统一输出的方法、装置、计算机设备及存储介质
CN111552578B (zh) 一种第三方接口调用方法及装置
CN103368980B (zh) 一种jsonp数据请求方法和装置
CN112084099B (zh) 基于主机获取报警状态值的方法、装置、设备及存储介质
CN108509229A (zh) 窗口跨域控制的方法、终端设备及计算机可读存储介质
CN109640140B (zh) 按键处理方法和装置
CN110020268B (zh) 页面返回方法及装置
CN110598155A (zh) 一种Ajax请求调用方法、装置、计算机设备及存储介质
CN108271055B (zh) 基于rn组件的响应用户操作动作的处理方法及装置

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