CN109783156B - 一种应用的启动控制方法及装置 - Google Patents
一种应用的启动控制方法及装置 Download PDFInfo
- Publication number
- CN109783156B CN109783156B CN201811636784.1A CN201811636784A CN109783156B CN 109783156 B CN109783156 B CN 109783156B CN 201811636784 A CN201811636784 A CN 201811636784A CN 109783156 B CN109783156 B CN 109783156B
- Authority
- CN
- China
- Prior art keywords
- application
- target
- ios
- custom
- calling
- 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
Images
Abstract
本发明实施例提供一种应用的启动控制方法及装置,其中方法包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述应用从系统桌面或者系统后台启动;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。本发明实施例避免了现有技术中在修改应用启动的自身代码逻辑来限制应用启动时限制效果较差的问题。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用的启动控制方法及装置。
背景技术
目前企业为了保证工作内容的保密性和安全性,通常会控制一些应用不能从终端的系统桌面或后台直接启动,而只能够从TrustSpace工作区内启动。
但是目前在限制iOS应用从系统桌面启动时,通常需要改写被限制应用的代码,才能够限制iOS应用直接从系统桌面进行启动。但是在被限制应用较多时,则需要逐个应用定制改写,过程较为繁琐,所用时间较长;此外,在改写被限制应用的代码时,对被限制应用的逻辑侵入比较严重,需要被限制应用的开发人员修改较多的代码,导致增加了开发人员的工作量,且不能有效保护被限制应用的限制逻辑,导致限制逻辑很容易被修改,进而导致限制应用从桌面启动的功能失效。
综上所述,现有技术中在限制应用从终端的系统桌面启动时,存在限制效果较差的问题。
发明内容
本发明实施例提供一种应用的启动控制方法及装置,以解决现有技术中在对应用的启动进行限制时限制效果较差的问题。
为了解决上述技术问题,第一方面,本发明实施例提供一种应用的启动控制方法,所述方法包括:
获取iOS应用的启动程序中用于控制应用启动过程的目标方法;
将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;
通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
第二方面,本发明实施例提供一种应用的启动控制装置,所述装置包括:
获取模块,用于获取iOS应用的启动程序中用于控制应用启动过程的目标方法;
替换模块,用于将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;
限制模块,用于通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的应用的启动控制方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的应用的启动控制方法的步骤。
本发明实施例提供的应用的启动控制方法及装置,通过获取iOS应用的启动程序中用于控制应用启动过程的目标方法,然后将目标方法替换为预先设置的与目标方法相对应的自定义方法,并通过调用与目标方法相对应的自定义方法,限制iOS应用从系统桌面或系统后台启动,实现了基于新加入的用于限制iOS应用从系统桌面或者系统后台启动的自定义方法,限制iOS应用从系统桌面或后台启动,且基于未修改启动程序中的任何代码,保证了iOS应用不会丢失原有的操作逻辑,从而实现了在不丢失iOS应用原有的逻辑操作的同时,确保了对iOS应用的启动限制功能,避免了现有技术中在通过修改应用启动的自身代码逻辑来限制应用启动时限制效果较差且人工工作量大的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1表示本发明实施例中应用的启动控制方法的步骤流程图;
图2表示本发明实施例中应用的启动控制装置的模块框图;
图3表示本发明实施例中电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例中应用的启动控制方法,该方法包括如下步骤:
步骤101:获取iOS应用的启动程序中用于控制应用启动过程的目标方法。
在本步骤中,具体的,可以基于Objective-C平台,获取iOS应用的启动程序中用于控制应用启动过程的目标方法。
其中,在获取iOS应用的启动程序中用于控制应用启动过程的目标方法时,可以当iOS应用的UIApplication分类的加载load方法被调用,且触发调用UIApplication类的setDelegate方法时,执行与UIApplication类的setDelegate方法相对应的自定义方法;其中,所述与UIApplication类的setDelegate方法相对应的自定义方法为通过分类方式预先加入至UIApplication中;然后通过所述与UIApplication类的setDelegate方法相对应的自定义方法,获取iOS应用对UIApplicationDelegate协议的实现类,并从所述UIApplicationDelegate协议的实现类中获取对UIApplicationDelegate协议定义的所述目标方法。
具体的,与UIApplication类的setDelegate方法相对应的自定义方法为secre_launch_setDelegate。
此外,具体的,UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。在本实施例中,可以通过Objective-C的分类技术将对UIApplication类的setDelegate方法相对应的自定义方法secre_launch_setDelegate附加到UIApplication中,然后通过加载(load)机制自动执行时将UIApplication类的setDelegate方法替换为与UIApplication类的setDelegate方法相对应的自定义方法secre_launch_setDelegate,即在UIApplication的实例对象触发调用UIApplication类的setDelegate方法时,实际执行与UIApplication类的setDelegate方法相对应的自定义方法secre_launch_setDelegate。此时,可以在与UIApplication类的setDelegate方法相对应的自定义方法secre_launch_setDelegate中,获取iOS应用对UIApplicationDelegate协议的实现类,进而从UIApplicationDelegate协议的实现类中对UIApplicationDelegate协议定义的与启动过程和进入后台相关的一组关键目标方法。
这样,通过先在UIApplication中附加与UIApplication类的setDelegate方法相对应的自定义方法secre_launch_setDelegate,然后由自定义方法secre_launch_setDelegate来获取iOS应用对UIApplicationDelegate协议的实现类以及与应用启动过程和进入后台过程相关的一组目标方法,实现了通过自定义方法secre_launch_setDelegate来查询获取iOS应用的相关信息,进而实现了对iOS应用的程序管控,为限制iOS应用直接从系统桌面启动提供了基础。
步骤102:将目标方法替换为预先设置的与目标方法相对应的自定义方法。
在本步骤中,具体的,预先设置的与目标方法相对应的自定义方法用于限制iOS应用从系统桌面或系统后台直接启动。这样,将目标方法替换为与目标方法相对应的自定义方法,进而使得能够通过自定义方法,来实现对iOS应用的启动限制。
其中,在将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法时,可以将预先设置的与所述目标方法相对应的自定义方法加入至所述UIApplicationDelegate协议的实现类中,并将所述目标方法替换为与所述目标方法相对应的自定义方法,以使通过所述与所述目标方法相对应的自定义方法,控制所述iOS应用的启动过程。
这样,在与UIApplication类的setDelegate方法相对应的自定义方法secre_launch_setDelegate中,获取到iOS应用对UIApplicationDelegate协议的实现类时,可以将自定义的一组与启动过程和进入后台相关的方法附加到UIApplicationDelegate协议的实现类的方法列表中,以使得能够通过由附加到方法列表中的自定义方法交换该类中对UIApplicationDelegate协议定义的与启动过程和进入后台过程相关的一组目标方法,实现对iOS应用的启动过程和进入后台过程的控制,进而限制iOS应用直接从系统桌面或系统后台启动,实现了在不修改应用代码逻辑的前提下,实现对应用的启动限制功能,有效保护了限制应用直接启动的实现逻辑。
此外,具体的,目标方法可以包括UIApplicationDelegate协议实现类的原始application:didFinishLaunchingWithOptions:方法、UIApplicationDelegate协议实现类的原始applicationDidBecomeActive:方法、UIApplicationDelegate协议实现类的原始application:openURL:options:方法和UIApplicationDelegate协议实现类的原始application:openURL:sourceApplication:annotation:方法。
此外,具体的,目标方法还可以包括原始applicationDidEnterBackground:方法。
另外,需要说明的是,根据iOS应用是否已经实现以及iOS系统版本,只会替换UIApplicationDelegate协议实现类的原始application:openURL:options:方法和原始application:openURL:sourceApplication:annotation:方法中的一个,优先替换原始application:openURL:options:方法。
另外,具体的,自定义方法secre_launch_setDelegate完成替换动作后,继续调用UIApplication类原始的setDelegate方法,以保证不会丢失iOS应用的原有的逻辑操作。
步骤103:通过调用与目标方法相对应的自定义方法,限制iOS应用从系统桌面或系统后台启动。
在本步骤中,具体的,可以通过调用与目标方法相对应的自定义方法,限制iOS应用从系统桌面或系统后台启动。
这样,通过调用与目标方法相对应的自定义方法,限制iOS应用从系统桌面或系统后台启动,实现了在不修改应用自身代码的前提下对被限制应用实现限制从系统桌面或系统后台直接启动,减少了开发人员的工作量,且有效避免了在开发修改iOS应用自身代码逻辑时导致的启动限制功能效果较差的问题。
其中,在通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动时,可以包括下述子步骤:
步骤D1:当iOS应用被呼起但未启动时,通过UIApplication调用所述原始application:didFinishLaunchingWithOptions:方法所对应的第一自定义方法,并通过所述第一自定义方法调用所述原始application:didFinishLaunchingWithOptions:方法。
具体的,在调用第一自定义方法时,还需要检测输入参数并设置标记(token)。
步骤D2:当检测到所述iOS应用为通过统一资源定位符方案URL Scheme被呼起时,通过UIApplication触发调用与所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法所对应的第二自定义方法,并通过所述第二自定义方法调用所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法。
在本步骤中,具体的,在调用第二自定义方法时,还需要检测输入参数并设置token。
此外,具体的,在此需要说明的是,在本步骤之前,在检测到iOS应用被呼起且启动时,可以直接检测所述iOS应用是否为通过统一资源定位符方案(URL Scheme)被呼起,若检测到所述iOS应用为通过URL Scheme被呼起,则进行该步骤,然后再进入步骤D3。
当然,若检测到所述iOS应用不是通过URL Scheme被呼起,则直接进入步骤D3。
步骤D3:通过UIApplication触发调用与所述原始applicationDidBecomeActive:方法所对应的第三自定义方法,并检测标记token是否验证通过。
步骤D4:当检测到token验证通过时,通过所述第三自定义方法调用所述原始applicationDidBecomeActive:方法,以完成应用启动。
在本步骤中,具体的,当检测到token验证通过时,可以通过第三自定义方法调用原始applicationDidBecomeActive:方法,以完成应用的启动,并完成应用启动检查。
步骤D5:当检测到token验证不通过时,则退出iOS应用或跳转到信任工作区TrustSpace应用。
这样,通过上述步骤,实现了通过加入至UIApplicationDelegate协议的实现类中的自定义方法,对iOS应用从系统桌面或系统后台直接启动的限制,进而使得无需修改应用代码即可实现对应用启动的限制功能。
此外,进一步地,在本实施例中,在通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动之后,还可以将用于限制所述iOS应用从系统桌面或系统后台启动的操作步骤封装至库中;其中,所述操作步骤包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
这样,通过将用于限制所述iOS应用从系统桌面或系统后台启动的操作步骤封装至库中,使得其他开发人员无需了解限制iOS应用启动的具体操作过程,且集成简单,提高了限制iOS应用直接从系统桌面或系统后台启动的操作简便性;此外,通过封装到库的操作,能够有效保护限制iOS应用从系统桌面或系统后台直接启动的实现逻辑,解决了现有技术中在通过修改代码的方式,限制应用从终端的系统桌面启动时限制效果较差的问题。
此外,下面可以通过具体应用场景对此进行说明。
例如,上述实施例可以应用于信任工作区(TrustSpace)应用中。其中,TrustSpace为企业办公工作区形态的管理应用。本实施例可以在TrustSpace实施,进而实现对工作区内其他原生iOS应用的启动管理,即集成本实施例中的库的iOS应用将不允许从系统桌面或系统后台直接启动,必须从TrustSpace工作区授权后从TrustSpace工作区内启动,确保了工作区内的企业应用的安全授权访问与应用之间的数据简单交换。
这样,本实施例通过获取iOS应用的启动程序中用于控制应用启动过程的目标方法,然后将目标方法替换为预先设置的与目标方法相对应的自定义方法,并通过调用与目标方法相对应的自定义方法,限制iOS应用从系统桌面或系统后台启动,实现了基于新加入的用于限制应用从系统桌面或者系统后台启动的自定义方法,限制iOS应用从系统桌面或后台启动,且基于未修改启动程序中的任何代码,保证了iOS应用不会丢失原有的操作逻辑,从而实现了在不丢失iOS应用原有的逻辑操作的同时,确保了对iOS应用的启动限制功能,避免了现有技术中在修改应用启动的自身代码逻辑来限制应用启动时限制效果较差且人工工作量大的问题。
此外,如图2所示,为本发明实施例中应用的启动控制装置的模块框图,该装置包括:
获取模块201,用于获取iOS应用的启动程序中用于控制应用启动过程的目标方法;
替换模块202,用于将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;
限制模块203,用于通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
可选地,所述获取模块201包括:
执行单元,用于当iOS应用的UIApplication分类的加载load方法被调用,且触发调用UIApplication类的setDelegate方法时,执行与UIApplication类的setDelegate方法相对应的自定义方法;其中,所述与UIApplication类的setDelegate方法相对应的自定义方法为通过分类方式预先加入至UIApplication中;
获取单元,用于通过所述与UIApplication类的setDelegate方法相对应的自定义方法,获取iOS应用对UIApplicationDelegate协议的实现类,并从所述UIApplicationDelegate协议的实现类中获取对UIApplicationDelegate协议定义的所述目标方法。
可选地,所述替换模块202用于,将预先设置的与所述目标方法相对应的自定义方法加入至所述UIApplicationDelegate协议的实现类中,并将所述目标方法替换为与所述目标方法相对应的自定义方法,以使通过所述与所述目标方法相对应的自定义方法,控制所述iOS应用的启动过程。
可选地,所述目标方法包括:UIApplicationDelegate协议实现类的原始application:didFinishLaunchingWithOptions:方法、UIApplicationDelegate协议实现类的原始applicationDidBecomeActive:方法、UIApplicationDelegate协议实现类的原始application:openURL:options:方法和UIApplicationDelegate协议实现类的原始application:openURL:sourceApplication:annotation:方法;
所述限制模块203包括:
第一调用单元,用于当iOS应用被呼起但未启动时,通过UIApplication调用所述原始application:didFinishLaunchingWithOptions:方法所对应的第一自定义方法,并通过所述第一自定义方法调用所述原始application:didFinishLaunchingWithOptions:方法;
第二调用单元,用于当检测到所述iOS应用为通过统一资源定位符方案URLScheme被呼起时,通过UIApplication触发调用与所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法所对应的第二自定义方法,并通过所述第二自定义方法调用所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法;
检测单元,用于通过UIApplication触发调用与所述原始applicationDidBecomeActive:方法所对应的第三自定义方法,并检测标记token是否验证通过;
第三调用单元,用于当检测到token验证通过时,通过所述第三自定义方法调用所述原始applicationDidBecomeActive:方法,以完成应用启动;
处理单元,用于当检测到token验证不通过时,则退出iOS应用或跳转到信任工作区TrustSpace应用。
可选地,所述装置还包括:
封装模块,用于将用于限制所述iOS应用从系统桌面或系统后台启动的操作步骤封装至库中;其中,
所述操作步骤包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
这样,本实施例提供的应用的启动控制装置,通过获取iOS应用的启动程序中用于控制应用启动过程的目标方法,然后将目标方法替换为预先设置的与目标方法相对应的自定义方法,并通过调用与目标方法相对应的自定义方法,限制iOS应用从系统桌面或系统后台启动,实现了基于新加入的用于限制应用从系统桌面或者系统后台启动的自定义方法,限制iOS应用从系统桌面或后台启动,且基于未修改启动程序中的任何代码,保证了iOS应用不会丢失原有的操作逻辑,从而实现了在不丢失iOS应用原有的逻辑操作的同时,确保了对iOS应用的启动限制功能,避免了现有技术中在修改应用启动的自身代码逻辑来限制应用启动时限制效果较差且人工工作量大的问题。
此外,如图3所示,为本发明实施例提供的电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储在存储器330上并可在处理器310上运行的计算机程序,以执行上述各实施例提供的方法,例如包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种应用的启动控制方法,其特征在于,所述方法包括:
获取iOS应用的启动程序中用于控制应用启动过程的目标方法;
将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;
通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动;
所述自定义方法是所述iOS应用对UIApplicationDelegate协议的实现类中的与所述目标方法相对应的自定义的方法。
2.根据权利要求1所述的方法,其特征在于,所述获取iOS应用的启动程序中用于控制应用启动过程的目标方法,包括:
当iOS应用的UIApplication分类的加载load方法被调用,且触发调用UIApplication类的setDelegate方法时,执行与UIApplication类的setDelegate方法相对应的自定义方法;其中,所述与UIApplication类的setDelegate方法相对应的自定义方法为通过分类方式预先加入至UIApplication中;
通过所述与UIApplication类的setDelegate方法相对应的自定义方法,获取iOS应用对所述UIApplicationDelegate协议的实现类,并从所述UIApplicationDelegate协议的实现类中获取对UIApplicationDelegate协议定义的所述目标方法。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,包括:
将预先设置的与所述目标方法相对应的自定义方法加入至所述UIApplicationDelegate协议的实现类中,并将所述目标方法替换为与所述目标方法相对应的自定义方法,以使通过所述与所述目标方法相对应的自定义方法,控制所述iOS应用的启动过程。
4.根据权利要求2所述的方法,其特征在于,
所述目标方法包括:UIApplicationDelegate协议实现类的原始application:didFinishLaunchingWithOptions:方法、UIApplicationDelegate协议实现类的原始applicationDidBecomeActive:方法、UIApplicationDelegate协议实现类的原始application:openURL:options:方法和UIApplicationDelegate协议实现类的原始application:openURL:sourceApplication:annotation:方法;
所述通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动,包括:
当iOS应用被呼起但未启动时,通过UIApplication调用所述原始application:didFinishLaunchingWithOptions:方法所对应的第一自定义方法,并通过所述第一自定义方法调用所述原始application:didFinishLaunchingWithOptions:方法;
当检测到所述iOS应用为通过统一资源定位符方案URL Scheme被呼起时,通过UIApplication触发调用与所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法所对应的第二自定义方法,并通过所述第二自定义方法调用所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法;
通过UIApplication触发调用与所述原始applicationDidBecomeActive:方法所对应的第三自定义方法,并检测标记token是否验证通过;
当检测到token验证通过时,通过所述第三自定义方法调用所述原始applicationDidBecomeActive:方法,以完成应用启动;
当检测到token验证不通过时,则退出iOS应用或跳转到信任工作区TrustSpace应用。
5.根据权利要求1所述的方法,其特征在于,所述通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动之后,所述方法还包括:
将用于限制所述iOS应用从系统桌面或系统后台启动的操作步骤封装至库中;其中,
所述操作步骤包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
6.一种应用的启动控制装置,其特征在于,所述装置包括:
获取模块,用于获取iOS应用的启动程序中用于控制应用启动过程的目标方法;
替换模块,用于将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法,其中与所述目标方法相对应的自定义方法用于限制所述iOS应用从系统桌面或者系统后台启动;所述自定义方法是所述iOS应用对UIApplicationDelegate协议的实现类中的与所述目标方法相对应的自定义的方法;
限制模块,用于通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
7.根据权利要求6所述的装置,其特征在于,所述获取模块包括:
执行单元,用于当iOS应用的UIApplication分类的加载load方法被调用,且触发调用UIApplication类的setDelegate方法时,执行与UIApplication类的setDelegate方法相对应的自定义方法;其中,所述与UIApplication类的setDelegate方法相对应的自定义方法为通过分类方式预先加入至UIApplication中;
获取单元,用于通过所述与UIApplication类的setDelegate方法相对应的自定义方法,获取iOS应用对所述UIApplicationDelegate协议的实现类,并从所述UIApplicationDelegate协议的实现类中获取对UIApplicationDelegate协议定义的所述目标方法。
8.根据权利要求7所述的装置,其特征在于,所述替换模块用于,将预先设置的与所述目标方法相对应的自定义方法加入至所述UIApplicationDelegate协议的实现类中,并将所述目标方法替换为与所述目标方法相对应的自定义方法,以使通过所述与所述目标方法相对应的自定义方法,控制所述iOS应用的启动过程。
9.根据权利要求7所述的装置,其特征在于,
所述目标方法包括:UIApplicationDelegate协议实现类的原始application:didFinishLaunchingWithOptions:方法、UIApplicationDelegate协议实现类的原始applicationDidBecomeActive:方法、UIApplicationDelegate协议实现类的原始application:openURL:options:方法和UIApplicationDelegate协议实现类的原始application:openURL:sourceApplication:annotation:方法;
所述限制模块包括:
第一调用单元,用于当iOS应用被呼起但未启动时,通过UIApplication调用所述原始application:didFinishLaunchingWithOptions:方法所对应的第一自定义方法,并通过所述第一自定义方法调用所述原始application:didFinishLaunchingWithOptions:方法;
第二调用单元,用于当检测到所述iOS应用为通过统一资源定位符方案URL Scheme被呼起时,通过UIApplication触发调用与所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法所对应的第二自定义方法,并通过所述第二自定义方法调用所述原始application:openURL:options:方法或所述原始application:openURL:sourceApplication:annotation:方法;
检测单元,用于通过UIApplication触发调用与所述原始applicationDidBecomeActive:方法所对应的第三自定义方法,并检测标记token是否验证通过;
第三调用单元,用于当检测到token验证通过时,通过所述第三自定义方法调用所述原始applicationDidBecomeActive:方法,以完成应用启动;
处理单元,用于当检测到token验证不通过时,则退出iOS应用或跳转到信任工作区TrustSpace应用。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
封装模块,用于将用于限制所述iOS应用从系统桌面或系统后台启动的操作步骤封装至库中;其中,
所述操作步骤包括:获取iOS应用的启动程序中用于控制应用启动过程的目标方法;将所述目标方法替换为预先设置的与所述目标方法相对应的自定义方法;通过调用与所述目标方法相对应的自定义方法,限制所述iOS应用从系统桌面或系统后台启动。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的应用的启动控制方法的步骤。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5中任一项所述的应用的启动控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636784.1A CN109783156B (zh) | 2018-12-29 | 2018-12-29 | 一种应用的启动控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636784.1A CN109783156B (zh) | 2018-12-29 | 2018-12-29 | 一种应用的启动控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783156A CN109783156A (zh) | 2019-05-21 |
CN109783156B true CN109783156B (zh) | 2021-11-16 |
Family
ID=66497975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811636784.1A Active CN109783156B (zh) | 2018-12-29 | 2018-12-29 | 一种应用的启动控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783156B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131597A (zh) * | 2019-10-22 | 2020-12-25 | 刘高峰 | 一种生成加密信息的方法、装置和智能设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259874A (zh) * | 2013-06-05 | 2013-08-21 | 百度在线网络技术(北京)有限公司 | 应用程序的跨系统运行方法、系统及云端服务器 |
CN103544029A (zh) * | 2013-07-02 | 2014-01-29 | Tcl集团股份有限公司 | 一种web应用引擎系统及其实现方法 |
CN105045641A (zh) * | 2015-08-31 | 2015-11-11 | 北京金山安全软件有限公司 | 一种启动组件的界面的方法及装置 |
CN105573778A (zh) * | 2015-04-23 | 2016-05-11 | 东莞酷派软件技术有限公司 | 一种应用程序启动方法及终端 |
CN105760185A (zh) * | 2014-12-19 | 2016-07-13 | 北京奇虎科技有限公司 | 应用的后台运行方法及装置 |
CN105824664A (zh) * | 2016-03-08 | 2016-08-03 | 广东欧珀移动通信有限公司 | 应用程序启动监控方法、装置以及终端设备 |
CN108614739A (zh) * | 2016-12-12 | 2018-10-02 | 阿里巴巴集团控股有限公司 | 一种传递消息的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9087191B2 (en) * | 2012-08-24 | 2015-07-21 | Vmware, Inc. | Method and system for facilitating isolated workspace for applications |
US8893222B2 (en) * | 2012-11-13 | 2014-11-18 | Auckland Uniservices Ltd. | Security system and method for the android operating system |
-
2018
- 2018-12-29 CN CN201811636784.1A patent/CN109783156B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259874A (zh) * | 2013-06-05 | 2013-08-21 | 百度在线网络技术(北京)有限公司 | 应用程序的跨系统运行方法、系统及云端服务器 |
CN103544029A (zh) * | 2013-07-02 | 2014-01-29 | Tcl集团股份有限公司 | 一种web应用引擎系统及其实现方法 |
CN105760185A (zh) * | 2014-12-19 | 2016-07-13 | 北京奇虎科技有限公司 | 应用的后台运行方法及装置 |
CN105573778A (zh) * | 2015-04-23 | 2016-05-11 | 东莞酷派软件技术有限公司 | 一种应用程序启动方法及终端 |
CN105045641A (zh) * | 2015-08-31 | 2015-11-11 | 北京金山安全软件有限公司 | 一种启动组件的界面的方法及装置 |
CN105824664A (zh) * | 2016-03-08 | 2016-08-03 | 广东欧珀移动通信有限公司 | 应用程序启动监控方法、装置以及终端设备 |
CN108614739A (zh) * | 2016-12-12 | 2018-10-02 | 阿里巴巴集团控股有限公司 | 一种传递消息的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"iOS四大对象之AppDelegate及UIApplicationMain函数/程序启动过程";非典型技术宅;《https://www.jianshu.com/p/b4d299ff56ff》;20161125;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109783156A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110651269B (zh) | 隔离的容器事件监视 | |
US10454942B2 (en) | Managed clone applications | |
CN108845812B (zh) | 插件更新方法、装置、计算机设备和存储介质 | |
US8893222B2 (en) | Security system and method for the android operating system | |
US8484625B2 (en) | Method and apparatus to vet an executable program using a model | |
US8438640B1 (en) | Method and apparatus for reverse patching of application programming interface calls in a sandbox environment | |
CN100492300C (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
CN109873803A (zh) | 应用程序的权限控制方法及装置、存储介质、计算机设备 | |
US20190332494A1 (en) | Compliance as a service for multi-cloud backup systems | |
EP3635543A1 (en) | Containerised programming | |
JP5106625B2 (ja) | ファイアウォールを構成する方法、システム、およびコンピュータ・プログラム | |
US9430641B1 (en) | Adapting a mobile application to a partitioned environment | |
CN109565522B (zh) | 检测与远程存储的内容相关联的批量操作 | |
US11599654B2 (en) | Method and apparatus for authority control, computer device and storage medium | |
CN114531477B (zh) | 功能组件的配置方法、装置、计算机设备和存储介质 | |
EP2570960A2 (en) | Method of controlling information processing system, program for controlling apparatus | |
US20190325134A1 (en) | Neural network detection of malicious activity | |
CN107122656B (zh) | 一种通过自调试防止外部调试的方法和装置 | |
US11520604B2 (en) | Accessing conflicting frameworks and classes | |
CN109783156B (zh) | 一种应用的启动控制方法及装置 | |
CN114398631A (zh) | 一种业务处理方法及装置、电子设备、存储介质 | |
CN109933407B (zh) | 区块链dapp虚拟机、数据处理方法和计算设备 | |
CN108628620B (zh) | Pos应用开发的实现方法、装置、计算机设备和存储介质 | |
CN115208671A (zh) | 防火墙配置方法、装置、电子设备和存储介质 | |
CN113703790A (zh) | Linux系统安全应用的软件框架及创建方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: Qianxin Technology Group Co.,Ltd. Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing. Applicant before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |