CN107818107A - 控制页面跳转的方法和装置 - Google Patents

控制页面跳转的方法和装置 Download PDF

Info

Publication number
CN107818107A
CN107818107A CN201610821491.5A CN201610821491A CN107818107A CN 107818107 A CN107818107 A CN 107818107A CN 201610821491 A CN201610821491 A CN 201610821491A CN 107818107 A CN107818107 A CN 107818107A
Authority
CN
China
Prior art keywords
page
application program
application
jump
openurl
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
Application number
CN201610821491.5A
Other languages
English (en)
Other versions
CN107818107B (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 Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co 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 Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201610821491.5A priority Critical patent/CN107818107B/zh
Publication of CN107818107A publication Critical patent/CN107818107A/zh
Application granted granted Critical
Publication of CN107818107B publication Critical patent/CN107818107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种控制页面跳转的方法和装置。上述方法包括:接收页面跳转操作;根据所述页面跳转操作调用openURL接口,并截取生成的openURL消息;解析所述openURL消息,得到消息参数;根据所述消息参数获取目标页面地址;根据所述目标页面地址进行页面跳转。上述控制页面跳转的方法和装置,两种页面跳转方式采用同一套控制代码,在应用进行开发时无需人工判断页面跳转的类型,能够节约应用开发时的人力,且提高应用开发效率。

Description

控制页面跳转的方法和装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种控制页面跳转的方法和装置。
背景技术
在进行终端的应用开发时,常常需要涉及到页面的跳转功能,应用程序的页面跳转分为两类,一类为应用间的跳转,一类为应用内部的跳转。开发人员在进行开发时,通常要先人工判断某页面跳转按钮可进行的跳转操作为应用间跳转还是应用内部的跳转,再分别针对应用间的跳转及应用内部的跳转写两套完全不同的控制页面跳转代码,代码逻辑复杂,浪费大量的人力,造成应用开发效率低。
发明内容
基于此,有必要提供一种控制页面跳转的方法,能够节约应用开发时的人力,提高应用开发效率。
此外,还有必要提供一种控制页面跳转的装置,能够节约应用开发时的人力,提高应用开发效率。
一种控制页面跳转的方法,包括:
接收页面跳转操作;
根据所述页面跳转操作调用openURL接口,并截取生成的openURL消息;
解析所述openURL消息,得到消息参数;
根据所述消息参数获取目标页面地址;
根据所述目标页面地址进行页面跳转。
在其中一个实施例中,在所述接收页面跳转操作的步骤之前,还包括:
接收开启应用程序操作,并根据所述开启应用程序操作加载应用架构;
判断所述应用程序中是否包含有预设的标记,若包含,则从所述应用架构中获取openURL接口。
在其中一个实施例中,所述从所述应用架构中获取openURL接口,包括:
从所述应用架构中获取所述应用程序的类列表;
遍历所述类列表,从所述类列表中提取出符合应用程序控制协议的类;
从所述符合应用程序控制协议的类中查找并获取openURL接口。
在其中一个实施例中,所述根据所述目标页面地址进行页面跳转,包括:
根据所述消息参数判断所述页面跳转操作是否为应用程序内部页面跳转;
若是,则调用第一页面跳转接口,按照所述目标页面地址跳转到所述应用程序中相应的页面;
若否,则根据所述目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照所述目标页面地址跳转至所述目标应用程序中相应的页面。
在其中一个实施例中,所述根据所述目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照所述目标页面地址跳转至所述目标应用程序中相应的页面,包括:
根据所述目标页面地址获取目标应用程序;
获取所述目标应用程序的URL标识,并根据所述URL标识检测所述目标应用程序是否注册URL协议;
若注册,则调用第二页面跳转接口,跳转至所述目标应用程序,并将所述目标页面地址作为参数传递至所述目标应用程序,以使所述目标应用程序根据所述目标页面地址打开相应的页面。
一种控制页面跳转的装置,包括:
接收模块,用于接收页面跳转操作;
截取模块,用于根据所述页面跳转操作调用openURL接口,并截取生成的openURL消息;
解析模块,用于解析所述openURL消息,得到消息参数;
地址获取模块,用于根据所述消息参数获取目标页面地址;
跳转模块,用于根据所述目标页面地址进行页面跳转。
在其中一个实施例中,所述装置还包括:
加载模块,用于接收开启应用程序操作,并根据所述开启应用程序操作加载应用架构;
判断模块,用于判断所述应用程序中是否包含有预设的标记;
接口获取模块,用于若所述应用程序中包含预设的标记,则从所述应用架构中获取openURL接口。
在其中一个实施例中,所述接口获取模块,包括:
获取单元,用于从所述应用架构中获取所述应用程序的类列表;
提取单元,用于遍历所述类列表,从所述类列表中提取出符合应用程序控制协议的类;
查找单元,用于从所述符合应用程序控制协议的类中查找并获取openURL接口。
在其中一个实施例中,所述跳转模块,包括:
判断单元,用于根据所述消息参数判断所述页面跳转操作是否为应用程序内部页面跳转;
内部跳转单元,用于若所述页面跳转操作为应用程序内部页面跳转,则调用第一页面跳转接口,按照所述目标页面地址跳转到所述应用程序中相应的页面;
应用间跳转单元,用于若所述页面跳转操作不是应用程序内部页面跳转,则根据所述目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照所述目标页面地址跳转至所述目标应用程序中相应的页面。
在其中一个实施例中,所述应用间跳转单元,包括:
目标获取子单元,用于根据所述目标页面地址获取目标应用程序;
检测子单元,用于获取所述目标应用程序的URL标识,并根据所述URL标识检测所述目标应用程序是否注册URL协议;
跳转子单元,用于若注册,则调用第二页面跳转接口,跳转至所述目标应用程序,并将所述目标页面地址作为参数传递至所述目标应用程序,以使所述目标应用程序根据所述目标页面地址打开相应的页面。
上述控制页面跳转的方法和装置,在接收到页面跳转操作时,调用openURL接口,解析截取的openURL消息得到消息参数,根据消息参数获取目标页面地址,并根据目标页面地址进行页面跳转,不论是应用程序间的页面跳转还是应用程序内部的页面跳转,都能通过调用openURL接口进行控制页面跳转,两种页面跳转方式采用同一套控制代码,在应用进行开发时无需人工判断页面跳转的类型,能够节约应用开发时的人力,且提高应用开发效率。
附图说明
图1为一个实施例中控制页面跳转的方法的流程示意图;
图2为一个实施例中获取openURL接口的流程示意图;
图3为一个实施例中根据目标页面地址进行页面跳转的流程示意图;
图4为一个实施例中进行应用程序间页面跳转的流程示意图;
图5为一个实施例中控制页面跳转的装置的结构示意图;
图6为另一个实施例中控制页面跳转的装置的结构示意图;
图7为一个实施例中接口获取模块的内部结构示意图;
图8为一个实施例中跳转模块的内部结构示意图;
图9为一个实施例中应用间跳转单元的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,提供了一种控制页面跳转的方法,包括以下步骤:
步骤S110,接收页面跳转操作。
具体的,用户在使用安装于终端的应用程序时,可通过点击、滑动等操作触发在应用程序的当前页面中的页面跳转按钮,终端接收触发页面跳转按钮产生的页面跳转操作,并根据页面跳转操作生成页面跳转指令。终端可包括智能手机、平板电脑、笔记本电脑等。
页面跳转操作可包括应用程序内部页面跳转及应用程序间页面跳转,其中,应用程序内部页面跳转指的是跳转的页面为用户正在使用的应用程序内部的页面,例如,用户点击“下一页”、“返回首页”等按钮进行跳转,跳转的页面为当前页面的下一页或是本应用的首页,即属于应用程序内部页面跳转;应用程序间页面跳转指的是跳转的页面为其它应用的页面,例如,用户在使用阅读应用时,点击浮动在当前页面上方的广告按钮,跳转至购物应用中相应的购物页面,即属于应用程序间页面跳转。
步骤S120,根据页面跳转操作调用openURL接口,并截取生成的openURL消息。
具体的,终端可根据页面跳转操作生成页面跳转指令,并根据页面跳转指令调用openURL接口进行页面跳转。openURL即“开放链接”,是一种解决不同的数字资源系统互操作、进行资源整合的方法,可将其看作是一种附带有元数据信息和资源地址信息的“可运行”的URL(Uniform Resource Locator,统一资源定位符),可用来解决二次文献数据库到原文服务的动态链接问题。调用openURL接口后,可通过hook(钩子)监听并截取生成的openURL消息。
步骤S130,解析openURL消息,得到消息参数。
具体的,终端可对截取的openURL消息进行解析,得到openURL消息中包含的消息参数,根据openURL消息中包含的消息参数的参数个数及参数类型,可判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转,并调用与消息参数相应的页面跳转接口进行页面跳转。
步骤S140,根据消息参数获取目标页面地址。
具体的,终端可根据解析得到的消息参数获取包含的目标页面地址,并根据目标页面地址跳转到与该目标页面地址匹配的页面。
步骤S150,根据目标页面地址进行页面跳转。
具体的,终端可根据消息参数的参数个数及参数类型判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转,若是应用程序内部页面跳转,则调用自定义的页面跳转接口跳转到与目标页面地址匹配的页面,若是应用程序间页面跳转,则先跳转到与目标页面地址匹配的目标应用程序,再跳转至目标应用程序中与目标页面地址匹配的页面。
上述控制页面跳转的方法,在接收到页面跳转操作时,调用openURL接口,解析截取的openURL消息得到消息参数,根据消息参数获取目标页面地址,并根据目标页面地址进行页面跳转,不论是应用程序间的页面跳转还是应用程序内部的页面跳转,都能通过调用openURL接口进行控制页面跳转,两种页面跳转方式采用同一套控制代码,在应用进行开发时无需人工判断页面跳转的类型,能够节约应用开发时的人力,且提高应用开发效率。
如图2所示,在一个实施例中,在步骤S110接收页面跳转操作之前,还包括以下步骤:
步骤S202,接收开启应用程序操作,并根据开启应用程序操作加载应用架构。
具体的,当用户开启应用程序时,终端接收开启应用程序操作,并生成开启指令,根据开启指令可加载应用程序的framework应用架构,并在framework应用架构中获取openURL接口用于进行页面跳转操作。
步骤S204,判断应用程序中是否包含有预设的标记,若是,则执行步骤S206,若否,则执行步骤S212。
具体的,终端可检测应用程序中是否包含有预设的标记,该标记可为数字、字母、符号等组成的字符串,用于标识该应用程序是否同时采用openURL接口进行应用程序内部页面跳转及应用程序间页面跳转,即用于标识该应用程序是否采用一套控制代码控制页面跳转,若是,则获取应用程序中的openURL接口,若否,则不需获取应用程序中的openURL接口,按照应用程序中设计的其它控制代码控制页面跳转。
步骤S206,从应用架构中获取应用程序的类列表。
具体的,可从framework应用架构中获取应用程序的类列表,类列表中存储有应用程序中的所有的类,其中,类是面向对象程序设计中的概念,实质是一种数据类型,类似于int(整数型)等基本类型,类是对某种对象的定义,它描述一个对象能够做什么以及做的方法。
步骤S208,遍历类列表,从类列表中提取出符合应用程序控制协议的类。
具体的,可扫描类列类,依次从类列表中提取出符合应用程序控制协议(UIApplicationDelegate协议)的类,UIApplication可帮助应用程序进行初始化并显示UI(User Interface用户界面)窗口,而UIApplicationDelegate用于响应应用程序中的事件,例如响应应用程序的开启、关闭、页面跳转等。
步骤S210,从符合应用程序控制协议的类中查找并获取openURL接口。
具体的,可从符合UIApplicationDelegate协议的类中,查找并获取openURL接口,利用openURL接口进行页面跳转需要基于UIApplicationDelegate协议,在UIApplicationDelegate中响应页面跳转操作并进行页面跳转,在符合UIApplicationDelegate协议的类中查找到openURL接口,从而可利用openURL接口实现应用程序内部页面跳转及应用程序间页面跳转。此外,可同时实现应用程序内部页面跳转及应用程序间页面跳转的openURL接口可能被开发人员进行重新命名,用于区别仅用于实现应用程序间页面跳转的openURL接口,因此,需先查找到重新命名的相应的openURL接口,才可正常进行应用程序内部页面跳转。
步骤S212,不作处理。
在本实施例中,在开启应用程序时,获取应用程序的类列表,遍历类列表,提取出符合应用程序控制协议的类,并在符合应用程序控制协议的类中查找openURL接口,从而可利用获取到的openURL接口实现应用程序内部页面跳转及应用程序间页面跳转,使仅用于实现应用程序间页面跳转的openURL接口也可用于实现应用程序内部页面跳转,两种页面跳转方式采用同一套控制代码,能够节约应用开发时的人力,且提高应用开发效率。
如图3所示,在一个实施例中,步骤S150根据目标页面地址进行页面跳转,包括以下步骤:
步骤S302,根据消息参数判断页面跳转操作是否为应用程序内部页面跳转,若是,则执行步骤S304,若否,则执行步骤S306。
具体的,可根据openURL消息中包含的消息参数的参数个数及参数类型调用openURL接口中对应的页面跳转接口,通过重载的方式,同一名称的页面跳转接口匹配的参数个数及参数类型不同,可对应不同的页面跳转操作,从而判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转。
步骤S304,调用第一页面跳转接口,按照目标页面地址跳转到应用程序中相应的页面。
具体的,第一页面跳转接口为openURL接口中预先自定义的application:openURL:options:及application:handleOpenURL:等页面跳转接口。若页面跳转操作属于应用程序内部页面跳转,则可调用自定义的页面跳转接口application:openURL:options:及application:handleOpenURL:等,按照目标页面地址跳转到应用程序中相应的页面。开发人员可预先重载openURL接口中的application:openURL:options:及application:handleOpenURL:等页面跳转接口,使其可实现应用程序内部页面跳转,并将重载的页面跳转接口添加到符合UIApplicationDelegate协议的类的openURL接口中。
步骤S306,根据目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照目标页面地址跳转至目标应用程序中相应的页面。
具体的,第二页面跳转接口为openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口。若页面跳转操作属于应用程序间页面跳转,则可调用openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口,按照目标页面地址跳转到目标应用程序中相应的页面。
如图4所示,在一个实施例中,步骤S306根据目标页面地址获取目标应用程序,并按照目标页面地址跳转至目标应用程序中相应的页面,包括以下步骤:
步骤S402,根据目标页面地址获取目标应用程序。
具体的,可根据目标页面地址获取目标应用程序,目标应用程序即指的需要跳转的应用程序。
步骤S404,获取目标应用程序的URL标识,并根据URL标识检测目标应用程序是否注册URL协议,若是,则执行步骤S406,若否,则执行步骤S408。
具体的,URL标识可为数字、字母及符号等组成的字符串,用于在URL协议中标识不同的应用程序,可获取目标应用程序的URL标识,并根据URL标识检测目标应用程序是否注册URL协议,若目标应用程序已注册URL协议,则可通过openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口访问目标应用程序,若未注册URL协议,则无法通过上述页面跳转接口访问目标应用程序,可返回跳转失败的消息。
步骤S406,调用第二页面跳转接口,跳转至目标应用程序,并将目标页面地址作为参数传递至目标应用程序,以使目标应用程序根据目标页面地址打开相应的页面。
具体的,在通过openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口访问目标应用程序的同时,将目标页面地址作为参数传递至目标应用程序,目标应用程序接收到该目标页面地址后,可根据目标页面地址打开相应的页面,则成功跳转至与目标页面地址匹配的目标应用程序中相应的页面。
步骤S408,返回跳转失败的信息。
在本实施例中,根据消息参数判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转,调用重载的页面跳转接口,使openURL接口可同时实现应用程序内部页面跳转及应用程序间页面跳转,两种页面跳转方式采用同一套控制代码,无需人工判断页面跳转的类型,能够节约应用开发时的人力,且提高应用开发效率。
如图5所示,提供了一种控制页面跳转的装置,包括接收模块510、截取模块520、解析模块530、地址获取模块540及跳转模块550。
接收模块510,用于接收页面跳转操作。
具体的,用户在使用安装于终端的应用程序时,可通过点击、滑动等操作触发在应用程序的当前页面中的页面跳转按钮,终端接收触发页面跳转按钮产生的页面跳转操作,并根据页面跳转操作生成页面跳转指令。终端可包括智能手机、平板电脑、笔记本电脑等。
页面跳转操作可包括应用程序内部页面跳转及应用程序间页面跳转,其中,应用程序内部页面跳转指的是跳转的页面为用户正在使用的应用程序内部的页面,例如,用户点击“下一页”、“返回首页”等按钮进行跳转,跳转的页面为当前页面的下一页或是本应用的首页,即属于应用程序内部页面跳转;应用程序间页面跳转指的是跳转的页面为其它应用的页面,例如,用户在使用阅读应用时,点击浮动在当前页面上方的广告按钮,跳转至购物应用中相应的购物页面,即属于应用程序间页面跳转。
截取模块520,用于根据页面跳转操作调用openURL接口,并截取生成的openURL消息。
具体的,终端可根据页面跳转操作生成页面跳转指令,并根据页面跳转指令调用openURL接口进行页面跳转。openURL即“开放链接”,是一种解决不同的数字资源系统互操作、进行资源整合的方法,可将其看作是一种附带有元数据信息和资源地址信息的“可运行”的URL,可用来解决二次文献数据库到原文服务的动态链接问题。调用openURL接口后,可通过hook监听并截取生成的openURL消息。
解析模块530,用于解析openURL消息,得到消息参数。
具体的,终端可对截取的openURL消息进行解析,得到openURL消息中包含的消息参数,根据openURL消息中包含的消息参数的参数个数及参数类型,可判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转,并调用与消息参数相应的页面跳转接口进行页面跳转。
地址获取模块540,用于根据消息参数获取目标页面地址。
具体的,终端可根据解析得到的消息参数获取包含的目标页面地址,并根据目标页面地址跳转到与该目标页面地址匹配的页面。
跳转模块550,用于根据目标页面地址进行页面跳转。
具体的,终端可根据消息参数的参数个数及参数类型判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转,若是应用程序内部页面跳转,则调用自定义的页面跳转接口跳转到与目标页面地址匹配的页面,若是应用程序间页面跳转,则先跳转到与目标页面地址匹配的目标应用程序,再跳转至目标应用程序中与目标页面地址匹配的页面。
上述控制页面跳转的装置,在接收到页面跳转操作时,调用openURL接口,解析截取的openURL消息得到消息参数,根据消息参数获取目标页面地址,并根据目标页面地址进行页面跳转,不论是应用程序间的页面跳转还是应用程序内部的页面跳转,都能通过调用openURL接口进行控制页面跳转,两种页面跳转方式采用同一套控制代码,在应用进行开发时无需人工判断页面跳转的类型,能够节约应用开发时的人力,且提高应用开发效率。
如图6所示,在一个实施例中,上述控制页面跳转的装置,除了包括接收模块510、截取模块520、解析模块530、地址获取模块540及跳转模块550,还包括加载模块560、判断模块570及接口获取模块580。
加载模块560,用于接收开启应用程序操作,并根据开启应用程序操作加载应用架构。
具体的,当用户开启应用程序时,终端接收开启应用程序操作,并生成开启指令,根据开启指令可加载应用程序的framework应用架构,并在framework应用架构中获取openURL接口用于进行页面跳转操作。
判断模块570,用于判断应用程序中是否包含有预设的标记。
具体的,终端可检测应用程序中是否包含有预设的标记,该标记可为数字、字母、符号等组成的字符串,用于标识该应用程序是否同时采用openURL接口进行应用程序内部页面跳转及应用程序间页面跳转,即用于标识该应用程序是否采用一套控制代码控制页面跳转,若是,则获取应用程序中的openURL接口,若否,则不需获取应用程序中的openURL接口,按照应用程序中设计的其它控制代码控制页面跳转。
接口获取模块580,用于若应用程序中包含预设的标记,则从应用架构中获取openURL接口。
如图7所示,在一个实施例中,接口获取模块580包括获取单元582、提取单元584及查找单元586。
获取单元582,用于从应用架构中获取应用程序的类列表。
具体的,可从framework应用架构中获取应用程序的类列表,类列表中存储有应用程序中的所有的类,其中,类是面向对象程序设计中的概念,实质是一种数据类型,类似于int等基本类型,类是对某种对象的定义,它描述一个对象能够做什么以及做的方法。
提取单元584,用于遍历类列表,从类列表中提取出符合应用程序控制协议的类。
具体的,可扫描类列类,依次从类列表中提取出符合应用程序控制协议(UIApplicationDelegate协议)的类,UIApplication可帮助应用程序进行初始化并显示UI窗口,而UIApplicationDelegate用于响应应用程序中的事件,例如响应应用程序的开启、关闭、页面跳转等。
查找单元586,用于从符合应用程序控制协议的类中查找并获取openURL接口。
具体的,可从符合UIApplicationDelegate协议的类中,查找并获取openURL接口,利用openURL接口进行页面跳转需要基于UIApplicationDelegate协议,在UIApplicationDelegate中响应页面跳转操作并进行页面跳转,在符合UIApplicationDelegate协议的类中查找到openURL接口,从而可利用openURL接口实现应用程序内部页面跳转及应用程序间页面跳转。此外,可同时实现应用程序内部页面跳转及应用程序间页面跳转的openURL接口可能被开发人员进行重新命名,用于区别仅用于实现应用程序间页面跳转的openURL接口,因此,需先查找到重新命名的相应的openURL接口,才可正常进行应用程序内部页面跳转。
在本实施例中,在开启应用程序时,获取应用程序的类列表,遍历类列表,提取出符合应用程序控制协议的类,并在符合应用程序控制协议的类中查找openURL接口,从而可利用获取到的openURL接口实现应用程序内部页面跳转及应用程序间页面跳转,使仅用于实现应用程序间页面跳转的openURL接口也可用于实现应用程序内部页面跳转,两种页面跳转方式采用同一套控制代码,能够节约应用开发时的人力,且提高应用开发效率。
如图8所示,在一个实施例中,跳转模块550包括判断单元552、内部跳转单元554及应用间跳转单元556。
判断单元552,用于根据消息参数判断页面跳转操作是否为应用程序内部页面跳转。
具体的,可根据openURL消息中包含的消息参数的参数个数及参数类型调用openURL接口中对应的页面跳转接口,通过重载的方式,同一名称的页面跳转接口匹配的参数个数及参数类型不同,可对应不同的页面跳转操作,从而判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转。
内部跳转单元554,用于若页面跳转操作为应用程序内部页面跳转,则调用第一页面跳转接口,按照目标页面地址跳转到应用程序中相应的页面。
具体的,第一页面跳转接口为openURL接口中预先自定义的application:openURL:options:及application:handleOpenURL:等页面跳转接口。若页面跳转操作属于应用程序内部页面跳转,则可调用自定义的页面跳转接口application:openURL:options:及application:handleOpenURL:等,按照目标页面地址跳转到应用程序中相应的页面。开发人员可预先重载openURL接口中的application:openURL:options:及application:handleOpenURL:等页面跳转接口,使其可实现应用程序内部页面跳转,并将重载的页面跳转接口添加到符合UIApplicationDelegate协议的类的openURL接口中。
应用间跳转单元556,用于若页面跳转操作不是应用程序内部页面跳转,则根据目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照目标页面地址跳转至目标应用程序中相应的页面。
具体的,第二页面跳转接口为openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口。若页面跳转操作属于应用程序间页面跳转,则可调用openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口,按照目标页面地址跳转到目标应用程序中相应的页面。
如图9所示,在一个实施例中,应用间跳转单元556包括目标获取子单元902、检测子单元904及跳转子单元906。
目标获取子单元902,用于根据目标页面地址获取目标应用程序。
具体的,可根据目标页面地址获取目标应用程序,目标应用程序即指的需要跳转的应用程序。
检测子单元904,用于获取目标应用程序的URL标识,并根据URL标识检测目标应用程序是否注册URL协议。
具体的,URL标识可为数字、字母及符号等组成的字符串,用于在URL协议中标识不同的应用程序,可获取目标应用程序的URL标识,并根据URL标识检测目标应用程序是否注册URL协议,若目标应用程序已注册URL协议,则可通过openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口访问目标应用程序,若未注册URL协议,则无法通过上述页面跳转接口访问目标应用程序,可返回跳转失败的消息。
跳转子单元906,用于若注册,则调用第二页面跳转接口,跳转至目标应用程序,并将目标页面地址作为参数传递至目标应用程序,以使目标应用程序根据目标页面地址打开相应的页面。
具体的,在通过openURL接口中系统原设计的application:openURL:options:及application:handleOpenURL:等页面跳转接口访问目标应用程序的同时,将目标页面地址作为参数传递至目标应用程序,目标应用程序接收到该目标页面地址后,可根据目标页面地址打开相应的页面,则成功跳转至与目标页面地址匹配的目标应用程序中相应的页面。
在本实施例中,根据消息参数判断页面跳转操作为应用程序内部页面跳转还是应用程序间页面跳转,调用重载的页面跳转接口,使openURL接口可同时实现应用程序内部页面跳转及应用程序间页面跳转,两种页面跳转方式采用同一套控制代码,无需人工判断页面跳转的类型,能够节约应用开发时的人力,且提高应用开发效率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种控制页面跳转的方法,包括:
接收页面跳转操作;
根据所述页面跳转操作调用openURL接口,并截取生成的openURL消息;
解析所述openURL消息,得到消息参数;
根据所述消息参数获取目标页面地址;
根据所述目标页面地址进行页面跳转。
2.根据权利要求1所述的控制页面跳转的方法,其特征在于,在所述接收页面跳转操作的步骤之前,还包括:
接收开启应用程序操作,并根据所述开启应用程序操作加载应用架构;
判断所述应用程序中是否包含有预设的标记,若包含,则从所述应用架构中获取openURL接口。
3.根据权利要求2所述的控制页面跳转的方法,其特征在于,所述从所述应用架构中获取openURL接口,包括:
从所述应用架构中获取所述应用程序的类列表;
遍历所述类列表,从所述类列表中提取出符合应用程序控制协议的类;
从所述符合应用程序控制协议的类中查找并获取openURL接口。
4.根据权利要求1所述的控制页面跳转的方法,其特征在于,所述根据所述目标页面地址进行页面跳转,包括:
根据所述消息参数判断所述页面跳转操作是否为应用程序内部页面跳转;
若是,则调用第一页面跳转接口,按照所述目标页面地址跳转到所述应用程序中相应的页面;
若否,则根据所述目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照所述目标页面地址跳转至所述目标应用程序中相应的页面。
5.根据权利要求4所述的控制页面跳转的方法,其特征在于,所述根据所述目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照所述目标页面地址跳转至所述目标应用程序中相应的页面,包括:
根据所述目标页面地址获取目标应用程序;
获取所述目标应用程序的URL标识,并根据所述URL标识检测所述目标应用程序是否注册URL协议;
若注册,则调用第二页面跳转接口,跳转至所述目标应用程序,并将所述目标页面地址作为参数传递至所述目标应用程序,以使所述目标应用程序根据所述目标页面地址打开相应的页面。
6.一种控制页面跳转的装置,其特征在于,包括:
接收模块,用于接收页面跳转操作;
截取模块,用于根据所述页面跳转操作调用openURL接口,并截取生成的openURL消息;
解析模块,用于解析所述openURL消息,得到消息参数;
地址获取模块,用于根据所述消息参数获取目标页面地址;
跳转模块,用于根据所述目标页面地址进行页面跳转。
7.根据权利要求6所述的控制页面跳转的装置,其特征在于,所述装置还包括:
加载模块,用于接收开启应用程序操作,并根据所述开启应用程序操作加载应用架构;
判断模块,用于判断所述应用程序中是否包含有预设的标记;
接口获取模块,用于若所述应用程序中包含预设的标记,则从所述应用架构中获取openURL接口。
8.根据权利要求7所述的控制页面跳转的装置,其特征在于,所述接口获取模块,包括:
获取单元,用于从所述应用架构中获取所述应用程序的类列表;
提取单元,用于遍历所述类列表,从所述类列表中提取出符合应用程序控制协议的类;
查找单元,用于从所述符合应用程序控制协议的类中查找并获取openURL接口。
9.根据权利要求6所述的控制页面跳转的装置,其特征在于,所述跳转模块,包括:
判断单元,用于根据所述消息参数判断所述页面跳转操作是否为应用程序内部页面跳转;
内部跳转单元,用于若所述页面跳转操作为应用程序内部页面跳转,则调用第一页面跳转接口,按照所述目标页面地址跳转到所述应用程序中相应的页面;
应用间跳转单元,用于若所述页面跳转操作不是应用程序内部页面跳转,则根据所述目标页面地址获取目标应用程序,并调用第二页面跳转接口,按照所述目标页面地址跳转至所述目标应用程序中相应的页面。
10.根据权利要求9所述的控制页面跳转的装置,其特征在于,所述应用间跳转单元,包括:
目标获取子单元,用于根据所述目标页面地址获取目标应用程序;
检测子单元,用于获取所述目标应用程序的URL标识,并根据所述URL标识检测所述目标应用程序是否注册URL协议;
跳转子单元,用于若注册,则调用第二页面跳转接口,跳转至所述目标应用程序,并将所述目标页面地址作为参数传递至所述目标应用程序,以使所述目标应用程序根据所述目标页面地址打开相应的页面。
CN201610821491.5A 2016-09-12 2016-09-12 控制页面跳转的方法和装置 Active CN107818107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610821491.5A CN107818107B (zh) 2016-09-12 2016-09-12 控制页面跳转的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610821491.5A CN107818107B (zh) 2016-09-12 2016-09-12 控制页面跳转的方法和装置

Publications (2)

Publication Number Publication Date
CN107818107A true CN107818107A (zh) 2018-03-20
CN107818107B CN107818107B (zh) 2020-06-02

Family

ID=61600422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610821491.5A Active CN107818107B (zh) 2016-09-12 2016-09-12 控制页面跳转的方法和装置

Country Status (1)

Country Link
CN (1) CN107818107B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109358934A (zh) * 2018-09-30 2019-02-19 湖北华联博远科技有限公司 一种应用程序页面跳转方法及系统
CN109933734A (zh) * 2019-02-28 2019-06-25 广州华多网络科技有限公司 一种页面的跳转方法、装置、系统及存储介质
CN110688592A (zh) * 2018-07-06 2020-01-14 武汉斗鱼网络科技有限公司 一种外部链接跳转方法、存储介质、电子设备及系统
CN111124523A (zh) * 2018-10-15 2020-05-08 百度在线网络技术(北京)有限公司 用于初始化应用的方法和装置
CN112416544A (zh) * 2020-11-03 2021-02-26 中富通集团股份有限公司 一种5g移动终端应用跳转的方法和存储设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034537A (zh) * 2012-12-17 2013-04-10 北京奇虎科技有限公司 iOS系统中执行快捷操作的方法及装置
CN103064737A (zh) * 2012-12-17 2013-04-24 北京奇虎科技有限公司 用于iOS系统的快捷操作执行方法及装置
US20130198498A1 (en) * 2012-02-01 2013-08-01 International Business Machines Corporation Compiling method, program, and information processing apparatus
CN104954395A (zh) * 2014-03-24 2015-09-30 腾讯科技(深圳)有限公司 信息推送方法及装置
CN105260420A (zh) * 2015-09-25 2016-01-20 百度在线网络技术(北京)有限公司 一种用于在移动应用中提供目标页面的方法与设备
CN105354034A (zh) * 2015-11-17 2016-02-24 贵阳朗玛信息技术股份有限公司 应用程序的页面跳转方法及装置
CN105808103A (zh) * 2016-03-04 2016-07-27 谭永龙 一种基于iOS系统的切换到主屏幕的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130198498A1 (en) * 2012-02-01 2013-08-01 International Business Machines Corporation Compiling method, program, and information processing apparatus
CN103034537A (zh) * 2012-12-17 2013-04-10 北京奇虎科技有限公司 iOS系统中执行快捷操作的方法及装置
CN103064737A (zh) * 2012-12-17 2013-04-24 北京奇虎科技有限公司 用于iOS系统的快捷操作执行方法及装置
CN104954395A (zh) * 2014-03-24 2015-09-30 腾讯科技(深圳)有限公司 信息推送方法及装置
CN105260420A (zh) * 2015-09-25 2016-01-20 百度在线网络技术(北京)有限公司 一种用于在移动应用中提供目标页面的方法与设备
CN105354034A (zh) * 2015-11-17 2016-02-24 贵阳朗玛信息技术股份有限公司 应用程序的页面跳转方法及装置
CN105808103A (zh) * 2016-03-04 2016-07-27 谭永龙 一种基于iOS系统的切换到主屏幕的方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688592A (zh) * 2018-07-06 2020-01-14 武汉斗鱼网络科技有限公司 一种外部链接跳转方法、存储介质、电子设备及系统
CN110688592B (zh) * 2018-07-06 2022-06-21 武汉斗鱼网络科技有限公司 一种外部链接跳转方法、存储介质、电子设备及系统
CN109358934A (zh) * 2018-09-30 2019-02-19 湖北华联博远科技有限公司 一种应用程序页面跳转方法及系统
CN111124523A (zh) * 2018-10-15 2020-05-08 百度在线网络技术(北京)有限公司 用于初始化应用的方法和装置
CN109933734A (zh) * 2019-02-28 2019-06-25 广州华多网络科技有限公司 一种页面的跳转方法、装置、系统及存储介质
CN109933734B (zh) * 2019-02-28 2021-04-30 广州方硅信息技术有限公司 一种页面的跳转方法、装置、系统及存储介质
CN112416544A (zh) * 2020-11-03 2021-02-26 中富通集团股份有限公司 一种5g移动终端应用跳转的方法和存储设备
CN112416544B (zh) * 2020-11-03 2024-04-19 中富通集团股份有限公司 一种5g移动终端应用跳转的方法和存储设备

Also Published As

Publication number Publication date
CN107818107B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN107818107A (zh) 控制页面跳转的方法和装置
CN105493076B (zh) 通过通信通道的捕捉服务
US10033757B2 (en) Identifying malicious identifiers
CN106161381B (zh) 用于去混淆脚本化语言的设备和方法以及计算机可读介质
CN110286917A (zh) 文件打包方法、装置、设备及存储介质
CN106790206B (zh) 业务系统的报文解析方法及装置
CN105122760B (zh) 页面操作处理方法、装置及终端
US20190196811A1 (en) Api specification generation
CN107633081A (zh) 一种失信用户信息的查询方法及系统
CN107862214A (zh) 防止敏感信息泄露的方法、装置及存储介质
CN105354034A (zh) 应用程序的页面跳转方法及装置
CN111866158B (zh) 路由方法、装置、计算机设备和存储介质
WO2016188029A1 (zh) 解析二维码的方法及装置、计算机可读存储介质、计算机程序产品与终端设备
CN109634436A (zh) 输入法的联想方法、装置、设备及可读存储介质
CN107784552A (zh) 信息推送任务执行方法、装置、计算机设备和存储介质
CN105049627A (zh) 卡片生成方法和装置
CN110069769A (zh) 应用标签生成方法、装置及存储设备
CN109214178A (zh) App应用恶意行为检测方法及装置
CN103412913B (zh) 一种关联搜索方法和系统
CN106294885A (zh) 一种面向异构网页的数据收集与标注方法
CN103902906A (zh) 基于应用图标的移动终端恶意代码检测方法及系统
CN106845235B (zh) 一种基于机器学习方法的安卓平台回调函数检测方法
Castell-Uroz et al. URL-based Web tracking detection using deep learning
CN110263123A (zh) 机构名简称的预测方法、装置和计算机设备
CN109358934A (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