CN109522021B - 参数回调处理方法、装置、电子设备及存储介质 - Google Patents
参数回调处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109522021B CN109522021B CN201811279981.2A CN201811279981A CN109522021B CN 109522021 B CN109522021 B CN 109522021B CN 201811279981 A CN201811279981 A CN 201811279981A CN 109522021 B CN109522021 B CN 109522021B
- Authority
- CN
- China
- Prior art keywords
- sdk
- callback
- function method
- parameter
- function
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 175
- 230000004044 response Effects 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000012544 monitoring process Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 161
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 abstract description 6
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000008676 import Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 11
- 101000599778 Homo sapiens Insulin-like growth factor 2 mRNA-binding protein 1 Proteins 0.000 description 8
- 101000599782 Homo sapiens Insulin-like growth factor 2 mRNA-binding protein 3 Proteins 0.000 description 8
- 101000988591 Homo sapiens Minor histocompatibility antigen H13 Proteins 0.000 description 8
- 101000960626 Homo sapiens Mitochondrial inner membrane protease subunit 2 Proteins 0.000 description 8
- 101000702394 Homo sapiens Signal peptide peptidase-like 2A Proteins 0.000 description 8
- 101000828788 Homo sapiens Signal peptide peptidase-like 3 Proteins 0.000 description 8
- 101000960621 Homo sapiens U3 small nucleolar ribonucleoprotein protein IMP3 Proteins 0.000 description 8
- 102100029083 Minor histocompatibility antigen H13 Human genes 0.000 description 8
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 8
- 102100030403 Signal peptide peptidase-like 2A Human genes 0.000 description 8
- 102100023501 Signal peptide peptidase-like 3 Human genes 0.000 description 8
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 7
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 101710125768 Importin-4 Proteins 0.000 description 5
- 102100030404 Signal peptide peptidase-like 2B Human genes 0.000 description 5
- 238000013475 authorization Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012546 transfer 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/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种参数回调处理方法、装置、电子设备及存储介质,该参数回调处理方法包括:SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应;所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。本发明实施例减少了客户端APP的代码工作量,此外,回调参数无需由客户端APP导入SDK,简化了SDK封装接口,增强SDK对回调参数的可信赖性,简化了处理流程。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种参数回调处理方法、装置、电子设备及存储介质。
背景技术
在客户端APP应用中,为了满足用户快捷登录、支付或者分享的需求,一般都会提供多种第三方登录、支付或者分享的方式。现有技术中,客户端APP在调用第三方登录或支付后,一般需要经该客户端APP内的触发函数解析第三方SDK的回调响应,并将解析后的参数通过接口传递给认证支付SDK,且SDK内部处理后的结果需经回调函数返回至客户端APP。
发明人在实现本发明实施例的过程中发现:现有的客户端APP经触发函数解析第三方SDK的回调响应,在客户端APP侧产生的参数较多,且导致SDK封装的接口复杂;此外,回调响应需要先由客户端APP解析,再经客户端APP将解析后的回调参数导入认证支付SDK,由认证支付SDK将内部处理后的结果经回调函数返回给客户端APP,存在处理流程复杂的问题。
发明内容
有鉴于此,本发明实施例提供了一种参数回调处理方法、装置、电子设备及存储介质,以解决现有的客户端APP调用第三方应用程序时客户端APP侧产生的参数较多、SDK封装的接口及处理流程复杂的技术问题。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种参数回调处理方法,该方法包括:
SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应;
所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
第二方面,本发明实施例提供一种参数回调处理装置,该装置包括:
函数对调模块,用于SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应;
解析处理模块,用于所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
第三方面,本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行程序;
处理器,用于执行所述存储器中存储的可执行程序时,实现本发明任一实施例所述的参数回调处理方法。
第四方面,本发明实施例提供一种计算机存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现本发明任一实施例所述的参数回调处理方法。
本发明实施例的技术方案中,SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址,所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP,使得客户端APP无需对第三方应用程序的回调响应进行解析,减少了客户端APP的代码工作量,此外,回调参数无需由客户端APP导入SDK,简化了SDK封装接口,增强SDK对回调参数的可信赖性,简化了处理流程。
附图说明
图1为本发明实施例参数回调处理方法流程示意图之一;
图2为本发明实施例中第一函数方法和第二函数方法对调指针地址的原理示意图;
图3为本发明实施例参数回调处理方法流程示意图之二;
图4为本发明实施例参数回调处理方法流程示意图之三;
图5为本发明实施例参数回调处理装置的结构示意图;
图6为本发明实施例电子设备的硬件结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如单元可以是部分电路、部分处理器、部分程序或软件等等)。
图1为本发明实施例参数回调处理方法流程示意图之一。参照图1,本发明实施例提供一种参数回调处理方法,该参数回调处理方法包括:
步骤101,SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应。
现有技术中,电子设备(如手机、IPAD、笔记本、台式电脑等)上运行的客户端APP在调用第三方登录或支付时,都需要经客户端APP侧的触发函数接收第三方应用程序的回调响应,再将回调响应的参数经接口传递给软件开发工具包SDK处理。譬如对于IOS系统,需要在APPDelegate.m这类文件中通过-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDic tionary<UIApplicationOpenURLOptionsKey,id>*)options(IOS9或以上),或者,通过-(BOOL)application:(UIApplication*)applicationopenURL:(NSURL*)url sourceApplication:(NSString*)sourceApplicationannotation:(id)annotation(IOS9以下)方法,将参数通过接口回传给统一认证支付IOS-SDK,SDK内部才能获取到登录或者支付的回调参数,并进行相应的处理。
本发明实施例中,SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址。其中,第一函数方法用于在SDK外部接收并解析回调响应,即第一函数方法为客户端APP侧的触发函数方法,第二函数方法为在SDK内设置的用于接收并解析回调应的方法。
在一可选的实施方式中,在SDK内通过runtime方法hook到客户端APP侧的第一函数方法,譬如,调用到APPDelegate.m这类文件中-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDic tionary<UIApplicationOpenURLOptionsKey,id>*)options(IOS9或以上)和-(BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation(IOS9以下)这2个触发函数。为方便后面描述,本文将这2个触发函数称为SEL1和SEL2,分别对应的指针为IMP1和IMP2;再在SDK内部写两个对应的-(BOOL)sdk_application:(UIApplication*)app openURL:(NSURL*)urloptions:(NSDictionary<UIApplicationOpenURLOptionsKey,id>*)options和-(BOOL)sdk_application:(UIApplication*)application openURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplication annotation:(id)annotation函数方法,并把第三方登录或支付的回调处理方法写进去,同样的将这2个函数方法称为SEL3和SEL4,对应的指针为IMP3和IMP4。
当客户端APP接收到第三方应用程序的回调响应,譬如,客户端APP启动第三方应用程序后,用户在第三方应用程序的登录网页或者程序页面上输入授权信息,第三方应用程序根据接收的信息生成回调响应给客户端APP,由于SDK hook到客户端APP侧的第一函数方法,监测到客户端APP接收到第三方应用程序的回调响应,通过譬如method swizzling动态调用方法对调第一函数方法与第二函数方法的指针地址。参见图2,即将SEL1的指针由原来的IMP1替换为IMP3,SEL2的指针由原来的IMP2替换为IMP4,SEL3的指针由原来的IMP3替换为IMP1,SEL4的指针由原来的IMP4替换为IMP2。
步骤102,所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
具体地,客户端APP接收到回调响应时,会触发第一函数方法SEL1或者SEL2来处理,由于第一函数方法与第二函数方法的指针地址已经对调,故客户端APP触发第一函数方法处理回调响应,实际触发的是第二函数方法,即由SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
在一可选的实施方式中,SDK对回调响应进行解析,得到回调参数,确定回调参数属于登录认证回调时,则执行登录认证的逻辑判断流程,并将执行结果返回给客户端APP;确定回调参数属于支付回调时,则执行支付的逻辑判断流程,并将执行结果返回给客户端APP。
本发明实施例参数回调处理方法,通过动态调用方法,实现了SDK内部对回调响应的解析及处理,客户端APP无需对第三方应用程序的回调响应进行解析,减少了客户端APP的代码工作量,此外,回调参数无需由客户端APP导入SDK,简化了SDK封装接口,增强SDK对回调参数的可信赖性,简化了处理流程。
发明人在实现本发明实施例技术方案的过程中发现:现有的客户端APP经触发函数解析第三方SDK的回调响应的方法还存在如下的缺陷:
如果客户端APP还绑定了第三方分享等应用时,客户端APP经触发函数解析回调响应,其并不能通过触发函数中的任何参数分辨出回调响应是认证、支付或者分享,故只能将解析后的参数都传入认证支付SDK内部,通过相应的解析函数处理后,方能分辨出来各种回调响应。譬如以微博分享为例,如果客户端APP还集成了微博分享功能,由于触发函数中的任何一个参数无法分辨出返回响应到底是认证、支付还是分享,因此,触发函数只能将全部参数都传进SDK内部,再调用微博SDK的解析函数进行处理,才能分辨出来。但是这样一来,客户端APP单独实现微博分享的解析就无法得到响应,SDK内部解析判断出来的如果是微博分享,则需要通过一个代理delegate方式,将微博分享解析出来的数据传回给客户端APP,从而影响了客户端APP单独实现微博分享的功能。
为了克服现有的采用触发函数解析回调响应的方法的不足,本发明提供了另一实施例参数回调方法。图3为本发明实施例参数回调处理方法流程示意图之二。参照图3,在该实施例中,参数回调处理方法包括:
步骤301,SDK监测所述第三方应用程序是否调用所述SDK,确定所述第三方应用程序调用所述SDK时,对平台标识进行赋值;其中,所述平台标识用于表征所述第三方应用程序的类型。
在一可选的实施方式中,当客户端APP启动后,所述SDK经hook脚本调用到第一函数方法,所述SDK设置第二函数方法;所述SDK初始化平台标识和所述第一函数方法、所述第二函数方法对应的指针地址。
其中,第一函数方法用于在SDK外部接收并解析回调响应,即第一函数方法为客户端APP侧的触发函数方法,第二函数方法为在SDK内设置的用于接收并解析回调应的方法。可选地,所述第一函数方法包括至少两种第一处理方法,用于对应不同版本的系统,以满足程序兼容性的需求。
可选地,所述SDK设置第二函数方法,包括:
所述SDK递归遍历找寻所述第一函数方法;
确定找寻到所述第一函数方法时,根据找寻到的所述第一函数方法包括的第一处理方法在所述SDK内部转换生成对应数量的第二处理方法,形成所述第二函数方法;
确定在所述SDK外部未找寻到所述第一函数方法时,根据所述SDK内部的预设的触发函数方法生成所述第二函数方法。
通过上述设置,避免了SDK设置第二函数方法时,因客户端APP缺省第一函数方法导致的故障,通过SDK内部的预设的触发函数方法生成所述第二函数方法,增强了方法运行的可靠性。
初始化时,平台标识platform设为NO,即platform=-1,设置第一函数方法、所述第二函数方法对应的指针地址,如在一示例中,IMP1→SEL1,IMP2→SEL2,IMP3→SEL3,IMP4→SEL4。
SDK监测到客户端APP启动的第三方应用程序调用SDK时,则对平台标识进行赋值。在一示例中,调用SDK内不同的API接口时,则对平台标识按照预设规则进行赋值,譬如,调用微信SDK则platform=1,调用微博SDK则platform=2,调用支付宝SDK则platform=3等。如此,平台标识能表征所述第三方应用程序的类型。当客户端APP启动微博分享等应用时,由于直接经客户端APP生成第三方网页,无需调用SDK,则平台标识仍处于未赋值状态。
步骤302,SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址,其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应。
步骤302的实现具体可以参照前述的步骤101,在此不做赘述。
步骤303,检测平台标识是否赋值,若是则执行步骤304,否则执行步骤305。
步骤304,所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数。
确定平台标识赋值时,则第三应用调用了SDK,SDK主动经第二函数方法对回调响应进行解析,SDK不需要提供接口,被动地供客户端APP的触发函数调用,减少了客户端APP的代码工作量,简化了SDK封装接口。且由于不再需要经客户端APP解析及经接口将参数导入SDK,增强SDK对回调参数的可信赖性,简化了处理流程。
步骤305,还原所述第一函数方法和所述第二函数方法的指针地址,经所述第一函数方法在所述SDK外部接收并解析所述回调响应。
在一示例中,如果客户端APP启动微博分享,由于平台标识未赋值,则SDK会将控制权交回给客户端APP操作,这样,客户端APP自己单独实现微博分享的解析就会得到响应,无需将回调参数传来传去,简化了数据处理流程。
由上可见,本实施例参数回调方法,通过动态调用方法,既实现了对于需要调用SDK的第三登录或者支付等回调响应,由SDK内部进行解析及处理,并将处理结果返回给客户端APP,减少了客户端APP的代码工作量及数据处理流程;另通过平台标识是否赋值的判断,兼容了客户端APP单独使用第三方分享等功能。
可选地,在一实施例中,所述SDK监测到客户端APP接收到第三方应用程序的回调响应之前,参数回调处理方法还包括:
所述SDK监测到所述第三方应用程序退出时,恢复所述平台标识的初始值。
在一示例中,SDK监测到客户端APP有从后台进入前台操作时,即第三方应用程序未生成授权等回调响应前退出时,恢复平台标识的初始值,即平台标识platform设为NO。
可选地,在一实施例中,所述将执行结果返回给所述客户端APP之后,参数回调处理方法还包括:
恢复所述平台标识的初始值和所述第一函数方法、所述第二函数方法对应的指针地址的初始值。
图4为本发明实施例参数回调处理方法流程示意图之三。参照图4,本发明实施例参数回调处理方法具体包括:
步骤401,SDK递归遍历找寻第一函数方法。
步骤402,SDK内设置第二函数方法。
确定找寻到所述第一函数方法时,根据找寻到的所述第一函数方法包括的第一处理方法在所述SDK内部转换生成对应数量的第二处理方法,形成所述第二函数方法;
确定在所述SDK外部未找寻到所述第一函数方法时,根据所述SDK内部的预设的触发函数方法生成所述第二函数方法。
在一可选实施方式中,SDK找寻到对应不同版本系统的SEL1、SEL2,并在SDK内部写入对应的SEL3、SEL4。
步骤403,初始化参数设置。
在一可选实施方式中,初始化时,平台标识platform设为NO,即platform=-1,设置第一函数方法、所述第二函数方法对应的指针地址,如在一示例中,IMP1→SEL1,IMP2→SEL2,IMP3→SEL3,IMP4→SEL4。
步骤404,SDK监测到客户端APP启动的第三方应用程序调用SDK时,对平台标识进行赋值。
SDK监测到客户端APP启动的第三方应用程序调用SDK时,则对平台标识进行赋值。在一示例中,调用SDK内不同的API接口时,则对平台标识按照预设规则进行赋值,譬如,调用微信SDK则platform=1,调用微博SDK则platform=2,调用支付宝SDK则platform=3等。如此,平台标识能表征所述第三方应用程序的类型。当客户端APP启动微博分享应用时,由于直接经客户端APP生成第三方网页,无需调用SDK,则平台标识仍处于未赋值状态。
步骤405,SDK监测到第三方应用程序退出时,恢复平台标识的初始值。
在一示例中,SDK监测到客户端APP有从后台进入前台操作时,即第三方应用程序未生成授权等回调响应前退出时,恢复平台标识的初始值,即平台标识platform设为NO。
步骤406,SDK监测到客户端APP接收到第三方应用程序的回调响应时,调用动态交换方法,对调第一函数方法、第二函数方法的指针地址。
在一示例中,通过譬如method swizzling动态调用方法对调第一函数方法与第二函数方法的指针地址。将SEL1的指针由原来的IMP1替换为IMP3,SEL2的指针由原来的IMP2替换为IMP4,SEL3的指针由原来的IMP3替换为IMP1,SEL4的指针由原来的IMP4替换为IMP2。
步骤407,判断平台标识是否赋值;若是则执行步骤408,若否则执行步骤410。
步骤408,SDK通过所述第二函数方法对回调响应进行解析、处理并返回执行结果给客户端APP。
确定平台标识赋值时,则第三应用调用了SDK,SDK主动经第二函数方法对回调响应进行解析,SDK不需要提供接口,被动地供客户端APP的触发函数调用,减少了客户端APP的代码工作量,简化了SDK封装接口。且由于不再需要经客户端APP解析及经接口将参数导入SDK,增强SDK对回调参数的可信赖性,简化了处理流程。
步骤409,恢复所述平台标识的初始值和所述第一函数方法、所述第二函数方法对应的指针地址的初始值。
平台标识platform恢复为NO,即platform=-1,恢复第一函数方法、所述第二函数方法对应的指针地址的初始值,IMP1→SEL1,IMP2→SEL2,IMP3→SEL3,IMP4→SEL4。
步骤410,还原所述第一函数方法和所述第二函数方法的指针地址,经所述第一函数方法在所述SDK外部接收并解析所述回调响应。
在一示例中,如果客户端APP启动的第三方应用程序为微博分享,由于平台标识未赋值,还原所述第一函数方法和所述第二函数方法的指针地址,则SDK会将控制权交回给客户端APP操作,这样,客户端APP自己单独实现微博分享的解析就会得到响应,无需将回调参数传来传去,简化了数据处理流程。
本发明实施例还提供一种参数回调处理装置,参照图5,该参数回调处理装置包括:
函数对调模块501,用于SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应;
解析处理模块502,用于所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
在一可选的实施方式中,解析处理模块502用于SDK对回调响应进行解析,得到回调参数,确定回调参数属于登录认证回调时,则执行登录认证的逻辑判断流程,并将执行结果返回给客户端APP;确定回调参数属于支付回调时,则执行支付的逻辑判断流程,并将执行结果返回给客户端APP。
可选地,本实施例参数回调处理装置还包括:
初始化模块(图中未示出),用于SDK经hook脚本调用到第一函数方法,设置第二函数方法;初始化平台标识和所述第一函数方法、所述第二函数方法对应的指针地址。
可选地,本实施例参数回调处理装置还包括:
标识模块(图中未示出),用于SDK监测所述第三方应用程序是否调用所述SDK,确定所述第三方应用程序调用所述SDK时,对平台标识进行赋值;其中,所述平台标识用于表征所述第三方应用程序的类型。
可选地,本实施例参数回调处理装置中,解析处理模块502用于确定所述平台标识赋值时,所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
可选地,本实施例参数回调处理装置还包括:
回调响应模块(图中未示出),用于确定所述平台标识未赋值时,还原所述第一函数方法和所述第二函数方法的指针地址,经所述第一函数方法在所述SDK外部接收并解析所述回调响应。
可选地,本实施例参数回调处理装置还包括:
第一恢复模块(图中未示出),用于SDK监测到所述第三方应用程序退出时,恢复所述平台标识的初始值。
可选地,本实施例参数回调处理装置还包括:
第二恢复模块(图中未示出),用于SDK将执行结果返回给所述客户端APP之后,恢复所述平台标识的初始值和所述第一函数方法、所述第二函数方法对应的指针地址的初始值。
需要说明的是:上述实施例提供的参数回调处理装置进行参数回调时,仅以上述各程序模块的划分进行举例说明,在实际应用中,可以根据需要将上述处理分配由不同的程序模块完成。另外,上述实施例提供的参数回调处理装置与参数回调处理方法实施例基于同一设计构思,各程序模块的实现过程可以参照上述方法实施例,在此不做赘述。
本发明实施例还提供一种电子设备,该电子设备可以为智能手机或者平板电脑等。图6仅仅示出了该电子设备的示例性结构而非全部结构,根据需要可以实施图6示出的部分结构或全部结构。
本发明实施例提供的电子设备600包括:至少一个处理器601、存储器602、用户接口603和至少一个网络接口604。电子设备600中的各个组件通过总线系统605耦合在一起。可以理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统405。
其中,用户接口603可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等,用于执行相关的输入操作并显示相关的应用界面等。
可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。
本发明实施例中的存储器602用于存储各种类型的数据以支持参数回调处理方法的执行。这些数据的示例包括:用于在电子设备600上运行的任何可执行程序,如可执行程序6021,实现本发明实施例的参数回调处理方法的程序可以包含在可执行程序6021中。
本发明实施例揭示的参数回调处理方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,参数回调处理方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DSP,Digital SignalProcessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成本发明实施例提供的参数回调处理方法的步骤。
本发明实施例还提供了一种可读存储介质,存储介质可以包括:移动存储设备、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。所述可读存储介质存储有可执行程序;所述可执行程序用于被处理器执行时实现本发明任一实施例所述的参数回调处理方法。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理系统的处理器以产生一个机器,使得通过计算机或其他可编程数据处理系统的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理系统以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理系统上,使得在计算机或其他可编程系统上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程系统上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种参数回调处理方法,其特征在于,包括:
SDK监测第三方应用程序是否调用所述SDK,确定所述第三方应用程序调用所述SDK时,对平台标识进行赋值;其中,所述平台标识用于表征所述第三方应用程序的类型;
所述SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应;
确定所述平台标识赋值时,所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
2.如权利要求1所述的参数回调处理方法,其特征在于,所述方法还包括:
确定所述平台标识未赋值时,还原所述第一函数方法和所述第二函数方法的指针地址,经所述第一函数方法在所述SDK外部接收并解析所述回调响应。
3.如权利要求1所述的参数回调处理方法,其特征在于,所述SDK监测到客户端APP接收到第三方应用程序的回调响应之前,还包括:
所述SDK经hook脚本调用到所述第一函数方法,所述SDK设置第二函数方法;
所述SDK初始化所述平台标识和所述第一函数方法、所述第二函数方法对应的指针地址。
4.如权利要求1所述的参数回调处理方法,其特征在于,所述SDK监测到客户端APP接收到第三方应用程序的回调响应之前,还包括:
所述SDK监测到所述第三方应用程序退出时,恢复所述平台标识的初始值。
5.如权利要求1所述的参数回调处理方法,其特征在于,所述将执行结果返回给所述客户端APP之后,还包括:
恢复所述平台标识的初始值和所述第一函数方法、所述第二函数方法对应的指针地址的初始值。
6.如权利要求3所述的参数回调处理方法,其特征在于,所述第一函数方法包括至少两种第一处理方法,用于对应不同版本的系统,所述SDK设置第二函数方法,包括:
所述SDK递归遍历找寻所述第一函数方法;
确定找寻到所述第一函数方法时,根据找寻到的所述第一函数方法包括的第一处理方法在所述SDK内部转换生成对应数量的第二处理方法,形成所述第二函数方法;
确定在所述SDK外部未找寻到所述第一函数方法时,根据所述SDK内部的预设的触发函数方法生成所述第二函数方法。
7.一种参数回调处理装置,其特征在于,包括:
标识模块,用于SDK监测第三方应用程序是否调用所述SDK,确定所述第三方应用程序调用所述SDK时,对平台标识进行赋值;其中,所述平台标识用于表征所述第三方应用程序的类型;
函数对调模块,用于SDK监测到客户端APP接收到第三方应用程序的回调响应时,对调所述SDK外部的第一函数方法与所述SDK内部的第二函数方法的指针地址;其中,所述第一函数方法用于在所述SDK外部接收并解析所述回调响应;
解析处理模块,用于确定所述平台标识赋值时,所述SDK通过所述第二函数方法对所述回调响应进行解析得到回调参数,根据所述回调参数的类型执行相应的处理,并将执行结果返回给所述客户端APP。
8.一种电子设备,其特征在于,包括:
存储器,用于存储可执行程序;
处理器,用于执行所述存储器中存储的可执行程序时,实现如权利要求1至6任一所述的参数回调处理方法。
9.一种计算机存储介质,其特征在于,存储有可执行程序,所述可执行程序被处理器执行时,实现如权利要求1至6任一所述的参数回调处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811279981.2A CN109522021B (zh) | 2018-10-30 | 2018-10-30 | 参数回调处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811279981.2A CN109522021B (zh) | 2018-10-30 | 2018-10-30 | 参数回调处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522021A CN109522021A (zh) | 2019-03-26 |
CN109522021B true CN109522021B (zh) | 2022-03-25 |
Family
ID=65772732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811279981.2A Active CN109522021B (zh) | 2018-10-30 | 2018-10-30 | 参数回调处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522021B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377383B (zh) * | 2019-07-02 | 2023-02-03 | 上海上湖信息技术有限公司 | 一种查看应用软件性能参数的方法、装置及存储介质 |
CN111309407B (zh) * | 2020-02-21 | 2023-07-11 | 咪咕文化科技有限公司 | 集成第三方库的处理方法及装置 |
CN112764729B (zh) * | 2021-01-08 | 2024-02-06 | 深圳依时货拉拉科技有限公司 | 应用软件开发方法、装置、计算机设备及可读存储介质 |
CN114153452A (zh) * | 2021-10-27 | 2022-03-08 | 深圳市酷开网络科技股份有限公司 | 应用程序文件解析方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942093A (zh) * | 2013-01-23 | 2014-07-23 | 阿里巴巴集团控股有限公司 | 业务处理方法及系统 |
CN106325847A (zh) * | 2015-07-02 | 2017-01-11 | 杭州海康机器人技术有限公司 | 基于iOS平台获取应用程序功能的方法和装置 |
CN107463359A (zh) * | 2016-06-02 | 2017-12-12 | 深圳市慧动创想科技有限公司 | 一种在iOS ipa包植入代码的便捷方法 |
CN107885982A (zh) * | 2017-09-29 | 2018-04-06 | 五八有限公司 | 登录控制处理方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483283B1 (en) * | 2014-11-20 | 2016-11-01 | Apptimize, Inc. | Enhanced code callback |
-
2018
- 2018-10-30 CN CN201811279981.2A patent/CN109522021B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942093A (zh) * | 2013-01-23 | 2014-07-23 | 阿里巴巴集团控股有限公司 | 业务处理方法及系统 |
CN106325847A (zh) * | 2015-07-02 | 2017-01-11 | 杭州海康机器人技术有限公司 | 基于iOS平台获取应用程序功能的方法和装置 |
CN107463359A (zh) * | 2016-06-02 | 2017-12-12 | 深圳市慧动创想科技有限公司 | 一种在iOS ipa包植入代码的便捷方法 |
CN107885982A (zh) * | 2017-09-29 | 2018-04-06 | 五八有限公司 | 登录控制处理方法及终端 |
Non-Patent Citations (1)
Title |
---|
"(方法调配)Method Swizzling";weixin_30768661;《CSDN博客 公开网址:https://blog.csdn.net/weixin_30768661/article/details/99201456》;20150908;1-4 * |
Also Published As
Publication number | Publication date |
---|---|
CN109522021A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522021B (zh) | 参数回调处理方法、装置、电子设备及存储介质 | |
CN106445292B (zh) | 应用程序的分身管理方法及系统 | |
CN105718313A (zh) | 应用操作方法和装置 | |
US9990214B2 (en) | Dynamic agent delivery | |
US10084637B2 (en) | Automatic task tracking | |
CN109787959B (zh) | 一种账户信息处理方法及相关装置 | |
US20170147462A1 (en) | Agent dynamic service | |
CN110007936B (zh) | 数据处理方法和装置 | |
CN111124668A (zh) | 内存释放方法、装置、存储介质及终端 | |
CN112835632A (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
CN111736825B (zh) | 一种信息展示方法、装置、设备和存储介质 | |
CN112527416A (zh) | 任务处理方法、装置、计算机设备和存储介质 | |
CN116739524A (zh) | 业务流程设置方法、装置、设备、存储介质及程序产品 | |
US9916391B2 (en) | Method, apparatus and terminal for webpage content browsing | |
CN116112457A (zh) | 消息通知的方法、装置、计算机设备及存储介质 | |
CN114490266A (zh) | 一种数据采集方法、装置、设备及存储介质 | |
CN110262856B (zh) | 一种应用程序数据采集方法、装置、终端及存储介质 | |
US10165074B2 (en) | Asynchronous custom exit points | |
CN111885152B (zh) | 推广信息的处理方法、电子设备及计算机可读存储介质 | |
US9838488B2 (en) | Agent asynchronous transaction monitor | |
CN110737911A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN109783329B (zh) | 应用程序空白数据提示方法、系统及终端设备 | |
CN104834432A (zh) | 一种终端 | |
CN104834443A (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 |