掌桥专利:专业的专利平台
掌桥专利
首页

一种检测授权的方法、装置、终端及存储介质

文献发布时间:2023-06-19 10:38:35


一种检测授权的方法、装置、终端及存储介质

技术领域

本申请属于计算机技术领域,尤其涉及一种检测授权的方法、检测授权的装置、检测授权的终端及存储介质。

背景技术

小程序运行在移动应用程序(Application,APP)中,其在运行时会申请很多权限,有些权限APP并没有,这时会导致APP崩溃。传统的解决方案为通过宿主APP进行声明修复,或者该小程序删除相关的权限申请。无论是哪种解决方案,都需要修改相应的代码,费时费力、经济成本高,容易出现错误。

发明内容

有鉴于此,本申请实施例提供了一种检测授权的方法、检测授权的装置、检测授权的终端及存储介质,以解决现有技术中小程序向应用程序申请权限时,应用程序由于没有该权限而崩溃的问题。

本申请实施例的第一方面提供了一种检测授权的方法,包括:

基于第一预设字符串,在小程序对应的目标应用程序中,获取目标授权请求对应的第一描述信息;

基于第二预设字符串,在所述目标应用程序中,获取所述目标授权请求对应的第二描述信息;

基于所述第一描述信息和所述第二描述信息,判断所述目标应用程序中是否配置有所述目标授权请求对应的用途描述,所述第一描述信息与所述第二描述信息均与所述用途描述对应;

若判断结果为所述目标应用程序中配置有所述用途描述,则发起所述目标授权请求;或,

若判断结果为所述目标应用程序中未配置所述用途描述,则不发起所述目标授权请求。

本申请实施例的第二方面提供了一种检测授权的装置,包括:

第一获取单元,用于基于第一预设字符串,在小程序对应的目标应用程序中,获取目标授权请求对应的第一描述信息;

第二获取单元,用于基于第二预设字符串,在所述目标应用程序中,获取所述目标授权请求对应的第二描述信息;

判断单元,用于基于所述第一描述信息和所述第二描述信息,判断所述目标应用程序中是否配置有所述目标授权请求对应的用途描述,所述第一描述信息与所述第二描述信息均与所述用途描述对应;

第一处理单元,用于若判断结果为所述目标应用程序中配置有所述用途描述,则发起所述目标授权请求;

第二处理单元,用于若判断结果为所述目标应用程序中未配置所述用途描述,则不发起所述目标授权请求。

本申请实施例的第三方面提供了一种检测授权的终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面所述的检测授权的方法的步骤。

本申请实施例的第四方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的检测授权的方法的步骤。

本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在检测授权的终端上运行时,使得检测授权的终端执行上述第一方面所述的检测授权的方法的步骤。

本申请实施例提供的一种检测授权的方法、装置、终端及存储介质,具有以下有益效果:

本申请实施例,基于第一预设字符串,在小程序对应的目标应用程序中,获取目标授权请求对应的第一描述信息;基于第二预设字符串,在该目标应用程序中,获取该目标授权请求对应的第二描述信息;基于该第一描述信息和该第二描述信息,判断该目标应用程序中是否配置有该目标授权请求对应的用途描述;若判断结果为该目标应用程序中配置有该用途描述,则发起该目标授权请求;若判断结果为该目标应用程序中未配置该用途描述,则不发起该目标授权请求。上述方式中,小程序先不向其对应的目标应用程序发起目标授权请求,而是先基于第一预设字符串、第二预设字符串,分别获取目标授权请求对应的第一描述信息和第二描述信息,基于第一描述信息和第二描述信息确定目标应用程序中是否配置有目标授权请求对应的用途描述;若确定目标应用程序中配置有该用途描述,再向目标小程序发起目标授权请求;若确定目标应用程序中未配置该用途描述,则不向目标小程序发起目标授权请求。这种方式可以有效避免目标应用程序中未配置对应的用途描述,而小程序发起目标授权请求,进而导致目标应用程序崩溃的情况出现。且这种小程序检测授权的方式是在不修改目标应用程序代码、也不用小程序删除该权限申请的情况下,有效地防止了目标应用程序崩溃的情况出现,节约了经济成本,不易出错,保证了目标应用程序的正常运行,提升了用户体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种检测授权的方法的示意流程图;

图2是本发明另一实施例提供的一种检测授权的方法的示意流程图;

图3是本发明又一实施例提供的一种检测授权的方法的示意流程图;

图4是本发明提供的一种弹窗咨询示意图;

图5是本发明再一实施例提供的一种检测授权的方法的示意流程图;

图6是本申请一实施例提供的一种检测授权的装置的示意图;

图7是本申请另一实施例提供的一种检测授权的终端的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

小程序,是一种不需要下载安装即可使用的应用,实现了应用触手可及的梦想,用户扫一扫或搜一下即可打开应用。小程序的使用也体现了用完即走的理念,应用将无处不在,随时可用,但又无需安装卸载,用户不用再担心安装太多应用而占用内存的问题。因此,小程序的应用越来越广泛。

发明人意识到,小程序运行在移动应用程序中,其在运行时会申请很多权限,有些权限APP并没有,这时会导致APP崩溃。传统的解决方案为通过宿主APP进行声明修复,或者该小程序删除相关的权限申请。无论是哪种解决方案,都需要修改相应的代码,费时费力、经济成本高,容易出现错误。

有鉴于此,本申请实施例提供了一种检测授权的方法、检测授权的装置、检测授权的终端及存储介质,该方法中,小程序先不向其对应的目标应用程序发起目标授权请求,而是先基于第一预设字符串、第二预设字符串,分别获取目标授权请求对应的第一描述信息和第二描述信息,基于第一描述信息和第二描述信息确定目标应用程序中是否配置有目标授权请求对应的用途描述;若检测到该用途描述,再向目标小程序发起目标授权请求;若未检测到用途描述,则不向目标小程序发起目标授权请求。这种方式可以有效避免目标应用程序中未配置对应的用途描述,而小程序发起目标授权请求,进而导致目标应用程序崩溃的情况出现。且这种小程序检测授权的方式是在不修改目标应用程序代码、也不用小程序删除该权限申请的情况下,有效地防止了目标应用程序崩溃的情况出现,节约了经济成本,不易出错,保证了目标应用程序的正常运行,提升了用户体验。

请参见图1,图1是本申请实施例提供的一种检测授权的方法的示意流程图。本实施例中检测授权的方法的执行主体为终端、服务器等,其中,终端包括但不限于智能手机、平板电脑、计算机、个人数字助理(Personal Digital Assistant,PDA)等移动终端,还可以包括台式电脑等终端。本实施例中以执行主体为终端为例进行说明,如图1所示的检测授权的方法可包括S101~S105,值得说明的是,S104与S105并列,根据S103中不同的检测结果,确定S103后执行S104还是S105,而并非在S104后执行S105,具体如下:

S101:基于第一预设字符串,在小程序对应的目标应用程序中,获取目标授权请求对应的第一描述信息。

小程序运行在应用程序中,该目标应用程序就是指该小程序运行的应用程序。小程序在目标应用程序中运行时,会向该目标应用程序申请很多权限,例如,申请获取用户信息权限、地理位置权限、摄像头权限、通讯地址权限、发票抬头权限、运动步数权限、保存到相册权限、录音权限、读取通讯录权限、录像权限、读取图库权限等。

相应地,目标授权请求包括用户信息授权请求、地理位置授权请求、摄像头授权请求、通讯地址授权请求、发票抬头授权请求、运动步数授权请求、保存到相册授权请求、录音授权请求、读取通讯录授权请求、录像授权请求、访问相册授权请求、获取手机信息授权请求、访问日历授权请求、访问手机账户授权请求、读写手机存储授权请求、开启蓝牙授权请求、开启近场通信(Near Field Communication,NFC)授权请求、桌面快捷方式创建请求、后台弹出界面请求、显示悬浮窗请求等。

然而,不是小程序申请的这些权限目标应用程序都有,目标应用程序也需要预先向终端系统获取这些权限。当目标应用程序中没有某些权限,刚好小程序又向该目标应用程序申请了其没有的权限,若在现有技术中,目标应用程序就会出现崩溃的情况,例如,目标应用程序强行退出、目标应用程序卡死、目标应用程序当前功能不能使用等。此处仅为示例性说明,对此不做限定。

在本申请实施例中,小程序先不向目标应用程序发起目标授权请求,而是先基于终端检测小程序运行的目标应用程序中,是否配置有目标授权请求对应的用途描述。其中,目标授权请求对应的用途描述,也可以叫做目标授权请求对应的用途声明,可以理解为用途描述就是具体解释该目标授权请求想要获取的权限是用于做什么的。例如,目标授权请求为:地理位置授权请求,该地理位置授权请求对应的用途描述为:获取用户使用的终端当前所处的地理位置。目标授权请求为:访问相册授权请求,该访问相册授权请求对应的用途描述为:访问用户使用的终端中的相册。此处仅为示例性说明,对此不做限定。

示例性地,检测小程序运行的目标应用程序中,是否配置有目标授权请求对应的用途描述,可以是基于第一预设字符串,在小程序对应的目标应用程序中,获取目标授权请求对应的第一描述信息。

具体地,目标应用程序有一个对应的预设文档,该预设文档的本质是一个字典,用于存储所有授权请求对应的用途描述。第一预设字符串用于将目标授权请求对应的用途描述预先写入目标应用程序对应的预设文档中。第一描述信息即为预先写入目标应用程序对应的预设文档中的目标授权请求对应的用途描述。相应地,也可通过该第一预设字符串,在目标应用程序中获取到目标授权请求在预设文档中写入的描述信息,即获取到目标授权请求对应的第一描述信息。

示例性地,预设文档可以为info.plist文件,第一预设字符串可以包括key字符串,可预先通过该key字符串将地理位置授权请求对应的用途描述写入目标应用程序对应的info.plist文件中。相应地,可通过key字符串,在目标应用程序中获取到地理位置授权请求对应的第一描述信息,即地理位置授权请求在info.plist文件中写入的具体描述信息。例如,获取到的第一描述信息可以为“地理位置授权请求:获取用户使用的终端当前所处的地理位置”。

若预先并未通过key字符串将地理位置授权请求对应的用途描述写入目标应用程序对应的info.plist文件中,即目标应用程序也没有地理位置授权请求对应的权限,则获取到的第一描述信息可以为“地理位置授权请求:”。即地理位置授权请求对应的用途描述为空。此处仅为示例性说明,对此不做限定。

例如,当目标授权请求为访问相册授权请求时,基于key字符串,在目标应用程序中获取访问相册授权请求对应的第一描述信息,第一描述信息可以为“访问相册授权请求:访问用户使用的终端中的相册”;或者,第一描述信息可以为“访问相册授权请求:”(即访问相册授权请求对应的用途描述为空)。此处仅为示例性说明,对此不做限定。

示例性地,小程序在目标应用程序中运行时,若想要发起地理位置授权请求,先基于第一预设字符串,在小程序对应的目标应用程序中,获取地理位置授权请求对应的第一描述信息。或者,小程序在目标应用程序中运行时,若想要发起访问相册授权请求,先基于第一预设字符串,在小程序对应的目标应用程序中,获取访问相册授权请求对应的第一描述信息。此处仅为示例性说明,对此不做限定。

S102:基于第二预设字符串,在所述目标应用程序中,获取所述目标授权请求对应的第二描述信息。

第二预设字符串用于读取预设文档中目标授权请求对应的具体描述信息,可以理解为,第一预设字符串是在预设文档中写入目标授权请求对应的描述信息,第二预设字符串是将第一预设字符串写入的具体描述信息读取出来。因此,第一描述信息与第二描述信息均是与用途描述对应的信息。通过第二预设字符串,在目标应用程序中获取到基于第一预设字符串在预设文档中写入的具体描述信息,即获取到目标授权请求对应的第二描述信息。

当第一描述信息中有目标授权请求对应的具体描述信息时,第二描述信息就会获取到该目标授权请求对应的具体描述信息;当第一描述信息中没有目标授权请求对应的具体描述信息时,第二描述信息就只可以获取到目标授权请求对应的标识信息,例如“目标授权请求:”。此处仅为示例性说明,对此不做限定。

示例性地,第二预设字符串可以包括value字符串,可通过该value字符串,在目标应用程序中获取到基于key字符串在info.plist文件中写入的地理位置授权请求的具体描述信息。

例如,当第一描述信息为“地理位置授权请求:获取用户使用的终端当前所处的地理位置”时,获取到的第二描述信息为“获取用户使用的终端当前所处的地理位置”。当第一描述信息为“地理位置授权请求:”时,获取到的第二描述信息为“地理位置授权请求:”。可以理解为,当第一描述信息中有地理位置授权请求对应的具体描述信息时,第二描述信息就会获取到该地理位置授权请求对应的具体描述信息;当第一描述信息中没有地理位置授权请求对应的具体描述信息时,第二描述信息就只可以获取到地理位置授权请求对应的标识信息,即“地理位置授权请求:”。

当第一描述信息为“访问相册授权请求:访问用户使用的终端中的相册”时,获取到的第二描述信息为“访问用户使用的终端中的相册”。当第一描述信息为“访问相册授权请求:”时,获取到的第二描述信息为“访问相册授权请求:”。

此处仅为示例性说明,对此不做限定。

S103:基于所述第一描述信息和所述第二描述信息,判断所述目标应用程序中是否配置有所述目标授权请求对应的用途描述,所述第一描述信息与所述第二描述信息均与所述用途描述对应;

示例性地,检测第一描述信息和第二描述信息是否一致。当检测到第一描述信息与第二描述信息不一致时,判断结果为目标应用程序中配置有目标授权请求对应的用途描述。当检测到第一描述信息与第二描述信息完全一致时,判断结果为目标应用程序中未配置目标授权请求对应的用途描述。

当S103中的判断结果是目标应用程序中配置有目标授权请求对应的用途描述时,在S103之后执行S104。

S104:若判断结果为所述目标应用程序中配置有所述用途描述,则发起所述目标授权请求。

当判断结果为目标应用程序中配置有目标授权请求对应的用途描述,说明该目标应用程序预先向终端系统获取了该目标授权请求对应的权限,此时,小程序向该目标应用程序发起目标授权请求。由于目标应用程序预先向终端系统获取了该目标授权请求对应的权限,此时小程序向该目标应用程序发起目标授权请求,目标应用程序不会出现崩溃的情况。

示例性地,小程序在目标应用程序中运行时,若想要发起地理位置授权请求,先基于第一预设字符串获取的地理位置授权请求对应的第一描述信息,和基于第二预设字符串获取的地理位置授权请求对应的第二描述信息,确定目标应用程序中是否配置有地理位置授权请求对应的用途描述。当判断结果为目标应用程序中配置有地理位置授权请求对应的用途描述,说明该目标应用程序预先向终端系统获取了地理位置授权请求对应的权限,此时,小程序向该目标应用程序发起地理位置授权请求,目标应用程序也不会出现崩溃的情况。

或者,小程序在目标应用程序中运行时,若想要发起访问相册授权请求,先基于第一预设字符串获取的访问相册授权请求对应的第一描述信息,和基于第二预设字符串获取的访问相册授权请求对应的第二描述信息,确定目标应用程序中是否配置有访问相册授权请求对应的用途描述。当判断结果为目标应用程序中配置有访问相册授权请求对应的用途描述,说明该目标应用程序预先向终端系统获取了访问相册授权请求对应的权限,此时,小程序向该目标应用程序发起访问相册授权请求,目标应用程序也不会出现崩溃的情况。此处仅为示例性说明,对此不做限定。

当S103中的判断结果是目标应用程序中未配置目标授权请求对应的用途描述时,在S103之后执行S105。

S105:若判断结果为所述目标应用程序中未配置所述用途描述,则不发起所述目标授权请求。

当判断结果为目标应用程序中没有配置目标授权请求对应的用途描述,说明该目标应用程序并未预先向终端系统获取该目标授权请求对应的权限,此时,小程序不向目标应用程序发起目标授权请求。由于目标应用程序并未预先向终端系统获取该目标授权请求对应的权限,此时小程序若向该目标应用程序发起目标授权请求,目标应用程序会出现崩溃的情况,为了避免这种情况发生,小程序不向目标应用程序发起目标授权请求。通俗理解为,目标应用程序都没有目标授权请求对应的权限,小程序贸然发起该目标授权请求,就会造成目标应用程序会出现崩溃。

示例性地,小程序在目标应用程序中运行时,若想要发起地理位置授权请求,先基于第一预设字符串获取的地理位置授权请求对应的第一描述信息,和基于第二预设字符串获取的地理位置授权请求对应的第二描述信息,确定目标应用程序中是否配置有地理位置授权请求对应的用途描述。当判断结果为目标应用程序中没有配置地理位置授权请求对应的用途描述,此时,小程序不向该目标应用程序发起地理位置授权请求,避免出现目标应用程序崩溃的情况。

或者,小程序在目标应用程序中运行时,若想要发起访问相册授权请求,先基于第一预设字符串获取的访问相册授权请求对应的第一描述信息,和基于第二预设字符串获取的访问相册授权请求对应的第二描述信息,确定目标应用程序中是否配置有访问相册授权请求对应的用途描述。当判断结果为目标应用程序中没有配置访问相册授权请求对应的用途描述,此时,小程序不向该目标应用程序发起访问相册授权请求,避免出现目标应用程序崩溃的情况。此处仅为示例性说明,对此不做限定。

请参见图2,图2是本发明另一实施例提供的一种检测授权的方法的示意流程图。可选地,在一种可能的实现方式中,如图2所示,上述S103可以包括S1031~S1033,值得说明的是,S1032与S1033并列,根据S1031的执行结果,确定S1031后执行S1032还是S1033,而并非在S1032后执行S1033,具体如下:

S1031:检测所述第一描述信息与所述第二描述信息是否一致。

获取到目标授权请求对应的第一描述信息,和目标授权请求对应的第二描述信息后,检测第一描述信息与第二描述信息的具体信息内容是否一致。

当检测到第一描述信息与第二描述信息不一致时,在S1031后执行S1032。

S1032:当检测到所述第一描述信息与所述第二描述信息不一致时,所述判断结果为所述目标应用程序中配置有所述用途描述。

若检测结果为第一描述信息与第二描述信息不一致,则判定目标应用程序中配置有目标授权请求对应的用途描述。

示例性地,获取到的第一描述信息为“地理位置授权请求:获取用户使用的终端当前所处的地理位置”,获取到的第二描述信息为“获取用户使用的终端当前所处的地理位置”。第一描述信息与第二描述信息不一致,显然,此时目标应用程序中配置有地理位置授权请求对应的用途描述。

示例性地,获取到的第一描述信息为“访问相册授权请求:访问用户使用的终端中的相册”,获取到的第二描述信息为“访问用户使用的终端中的相册”。第一描述信息与第二描述信息不一致,显然,此时目标应用程序中配置有访问相册授权请求对应的用途描述。

此处仅为示例性说明,对此不做限定。

当检测到第一描述信息与第二描述信息完全一致时,在S1031后执行S1033。

S1033:当检测到所述第一描述信息与所述第二描述信息完全一致时,所述判断结果为所述目标应用程序中未配置所述用途描述。

若检测结果为第一描述信息与第二描述信息完全一致,则判定目标应用程序中未配置有目标授权请求对应的用途描述。

示例性地,获取到的第一描述信息为“地理位置授权请求:”,获取到的第二描述信息为“地理位置授权请求:”。第一描述信息与第二描述信息完全一致,显然,此时目标应用程序中未配置地理位置授权请求对应的用途描述。

示例性地,获取到的第一描述信息为“访问相册授权请求:”,获取到的第二描述信息为“访问相册授权请求:”。第一描述信息与第二描述信息完全一致,显然,此时目标应用程序中未配置访问相册授权请求对应的用途描述。

此处仅为示例性说明,对此不做限定。

请参见图3,图3是本发明又一实施例提供的一种检测授权的方法的示意流程图。可选地,在一种可能的实现方式中,如图3所示,上述S104可以包括S1041~S1043,值得说明的是,S1042与S1043并列,根据S1041的执行结果,确定S1041后执行S1042还是S1043,而并非在S1042后执行S1043,具体如下:

S1041:若判断结果为所述目标应用程序中配置有所述用途描述,则在所述小程序的显示界面发起弹窗咨询,所述弹窗咨询用于咨询用户是否同意所述目标授权请求。

当判断结果为目标应用程序中配置有目标授权请求对应的用途描述,在小程序的显示界面发起弹窗咨询。该弹窗咨询用于咨询用户是否同意目标授权请求,即该弹窗咨询用于咨询用户是否愿意授权小程序请求的权限。

请参见图4,图4是本发明提供的一种弹窗咨询示意图。示例性地,当目标授权请求为地理位置授权请求时,弹窗咨询显示的具体信息可以为:请求授予当前位置,在“请求授予当前位置”下方用不同颜色的文字显示:需要获取您的地理位置,请确认授权,该弹窗的最下方左边设置“取消”可触摸控件,右边设置“确定”可触摸控件。此处仅为示例性说明,对此不做限定。

S1042:当所述用户同意所述目标授权请求时,向所述小程序授予所述目标授权请求对应的权限。

当获取到用户同意授权的指令时,即用户同意授予该目标授权请求对应的权限时,向该小程序授予目标授权请求对应的权限。

示例性地,如图4所示,当用户想要同意目标授权请求时,可点弹窗右下角的“确定”可触摸控件,触发同意授权的指令。终端接收到同意授权的指令,基于目标应用程序向小程序授予地理位置授权请求对应的权限。即小程序可获取到终端用户的地理位置。此处仅为示例性说明,对此不做限定。

S1043:当所述用户不同意所述目标授权请求时,生成授权失败信息。

当获取到用户拒绝授权的指令时,即用户拒绝授予该目标授权请求对应的权限时,不会向该小程序授予目标授权请求对应的权限,且同时生成授权失败信息。该授权失败信息用于提示当前小程序获取目标授权请求对应的权限失败。

示例性地,如图4所示,当用户想要拒绝目标授权请求时,可点弹窗左下角的“取消”可触摸控件,触发拒绝授权的指令。终端接收到拒绝授权的指令,基于目标应用程序拒绝向小程序授予地理位置授权请求对应的权限。即小程序未获取到终端用户的地理位置。同时,还可生成授权失败信息,授权失败信息可以为:获取地理位置失败,请重新授权,也可以为:未获取到您的地理位置等。此处仅为示例性说明,对此不做限定。

可选地,在一种可能的实现方式中,本申请提供的检测授权的方法,可同时在多个应用程序中使用。示例性地,当小程序在多个目标应用程序中运行时,分别检测小程序对应的每个目标应用程序中是否配置有目标授权请求对应的用途描述;若在第一应用程序中检测到用途描述,则在第一应用程序中发起目标授权请求,该第一应用程序为多个目标应用程序中的任意一个;若在第一应用程序中未检测到用途描述,则不在第一应用程序中发起目标授权请求。

示例性地,该小程序可在多个目标应用程序中运行,这些目标应用程序可以不同,也可以相同。当小程序在多个目标应用程序中运行时,分别检测小程序对应的每个目标应用程序中是否配置有目标授权请求对应的用途描述。

例如,小程序在目标应用程序A、目标应用程序B、目标应用程序C中运行,检测小程序对应的目标应用程序A中是否配置有目标授权请求对应的用途描述,检测小程序对应的目标应用程序B中是否配置有目标授权请求对应的用途描述,检测小程序对应的目标应用程序C中是否配置有目标授权请求对应的用途描述。

本申请实施例中,小程序先不向其对应的目标应用程序发起目标授权请求,而是先检测该目标应用程序中是否配置有目标授权请求对应的用途描述;若检测到该用途描述,再向目标小程序发起目标授权请求;若未检测到用途描述,则不向目标小程序发起目标授权请求。检测目标应用程序中是否配置有目标授权请求对应的用途描述的具体方法,可参考S101~S103中的描述,此处不再赘述。

上述这种方式可以有效避免目标应用程序中未配置对应的用途描述,而小程序发起目标授权请求,进而导致目标应用程序崩溃的情况出现。且这种小程序检测授权的方式是在不修改目标应用程序代码、也不用小程序删除该权限申请的情况下,有效地防止了目标应用程序崩溃的情况出现,节约了经济成本,不易出错,保证了目标应用程序的正常运行,提升了用户体验。

从另一方面来说,小程序可以申请任何的授权类型,而不担心目标应用程序会崩溃,因为无论小程序申请什么类型的授权,都需要先检测目标应用程序中是否配置有该类型的授权请求对应的用途描述,只有在检测到对应的用途描述时,小程序才发起对应的授权请求,当未检测到对应的用途描述时,为了避免目标应用程序崩溃,小程序是不会发起对应的授权请求的。

可选地,在一种可能的实现方式中,小程序在每个目标应用程序中想要发起的目标授权请求可以相同,也可以不同。例如,第一应用程序可以为目标应用程序A、目标应用程序B、目标应用程序C。小程序想要在目标应用程序A中发起地理位置授权请求,则检测小程序对应的目标应用程序A中是否配置有地理位置授权请求对应的用途描述。小程序想要在目标应用程序B中发起访问相册授权请求,则检测小程序对应的目标应用程序B中是否配置有访问相册授权请求对应的用途描述。小程序想要在目标应用程序C中发起地理位置授权请求,则检测小程序对应的目标应用程序C中是否配置有地理位置授权请求对应的用途描述。此处仅为示例性说明,对此不做限定。

小程序在哪个目标应用程序中检测到目标授权请求对应的用途描述,就在哪个目标应用程序中发起目标授权请求。小程序在哪个目标应用程序中未检测到目标授权请求对应的用途描述,则不在该目标应用程序中发起目标授权请求。

示例性地,检测结果为目标应用程序A中配置有地理位置授权请求对应的用途描述,在该目标应用程序A中发起地理位置授权请求。检测结果为目标应用程序B中配置有访问相册授权请求对应的用途描述,在该目标应用程序B中发起访问相册授权请求。检测结果为目标应用程序C中没有配置地理位置授权请求对应的用途描述,则不在该目标应用程序C中发起地理位置授权请求,可有效地避免目标应用程序出现崩溃的情况。

本实施方式中,小程序可同时在多个不同或相同的目标应用程序中运行,采用的检测授权的方法是相同的,无需对不同的目标应用程序做兼容,节省了开发成本,提高了适用性。

请参见图5,图5是本发明再一实施例提供的一种检测授权的方法的示意流程图。可选地,在一种可能的实现方式中,如图5所示的检测授权的方法可包括S201~S206,本实施例中的S201~S205与图1对应的实施例中的S101~S105相同,此处不再赘述,下面将详细描述S206,具体如下:

若目标应用程序中没有配置目标授权请求对应的用途描述,在S203之后执行S205,进而在S205之后执行S206。

S206:生成提示信息,所述提示信息用于提示开发人员所述目标应用程序没有所述目标授权请求对应的权限。

当判断结果为目标应用程序中没有配置目标授权请求对应的用途描述,说明该目标应用程序并未预先向终端系统获取该目标授权请求对应的权限,小程序不向目标应用程序发起目标授权请求。此时,可生成提示信息。该提示信息用于提示开发人员目标应用程序没有目标授权请求对应的权限。该提示信息可通过终端发送至开发人员,也可在显示界面直接显示,此处仅为示例性说明,对此不做限定。

虽然,此时也相当于小程序授权失败了,但这里的授权失败与S1043中的授权失败是不同的。S1043中的授权失败是目标应用程序预先向终端系统获取到了该目标授权请求对应的权限,是用户不愿意给小程序授予该目标授权请求对应的权限,而导致的授权失败。S206中的授权失败是因为目标应用程序并未预先向终端系统获取该目标授权请求对应的权限,而导致的授权失败。S1043中的授权失败,通常只能通过再次发起目标授权请求,等待用户同意授权。而S206中的授权失败,在生成提示信息后可提示开发人员目标应用程序没有目标授权请求对应的权限,开发人员可通过修改代码的方式,使目标应用程序向终端系统获取该目标授权请求对应的权限。

本申请实施例中的提示信息,可直观地向开发人员展示授权失败的原因,便于开发人员及时修复目标应用程序中存在的问题,提升用户的体验。

请参见图6,图6是本申请一实施例提供的一种检测授权的装置的示意图。该装置包括的各单元用于执行图1、图2、图3、图5对应的实施例中的各步骤。具体请参阅图1、图2、图3、图5各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图6,包括:

第一获取单元310,用于基于第一预设字符串,在小程序对应的目标应用程序中,获取目标授权请求对应的第一描述信息;

第二获取单元320,用于基于第二预设字符串,在所述目标应用程序中,获取所述目标授权请求对应的第二描述信息;

判断单元330,用于基于所述第一描述信息和所述第二描述信息,判断所述目标应用程序中是否配置有所述目标授权请求对应的用途描述,所述第一描述信息与所述第二描述信息均与所述用途描述对应;

第一处理单元340,用于若判断结果为所述目标应用程序中配置有所述用途描述,则发起所述目标授权请求;

第二处理单元350,用于若判断结果为所述目标应用程序中未配置所述用途描述,则不发起所述目标授权请求

可选地,所述判断单元330具体用于:

检测所述第一描述信息与所述第二描述信息是否一致;

当检测到所述第一描述信息与所述第二描述信息不一致时,所述判断结果为所述目标应用程序中配置有所述用途描述;或,

当检测到所述第一描述信息与所述第二描述信息完全一致时,所述判断结果为所述目标应用程序中未配置所述用途描述。

可选地,所述装置还包括:

第三处理单元,用于当所述小程序在多个目标应用程序中运行时,分别检测所述小程序对应的每个目标应用程序中是否配置有目标授权请求对应的用途描述;

第四处理单元,用于若在第一应用程序中检测到所述用途描述,则在所述第一应用程序中发起目标授权请求,所述第一应用程序为所述多个目标应用程序中的任意一个;

第五处理单元,用于若在第一应用程序中未检测到所述用途描述,则不在所述第一应用程序中发起目标授权请求。

可选地,所述第一预设字符串包括key字符串,所述第二预设字符串包括value字符串。

可选地,所述第一处理单元340具体用于:

若判断结果为所述目标应用程序中配置有所述用途描述,则在所述小程序的显示界面发起弹窗咨询,所述弹窗咨询用于咨询用户是否同意所述目标授权请求;

当所述用户同意所述目标授权请求时,向所述小程序授予所述目标授权请求对应的权限;或,

当所述用户不同意所述目标授权请求时,生成授权失败信息

可选地,所述装置还包括:

信息生成单元,用于生成提示信息,所述提示信息用于提示开发人员所述目标应用程序没有所述目标授权请求对应的权限。

请参见图7,图7是本申请另一实施例提供的一种检测授权的终端的示意图。如图7所示,该实施例的检测授权的终端4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机指令42。所述处理器40执行所述计算机指令42时实现上述各个检测授权的方法实施例中的步骤,例如图1所示的S101至S105。或者,所述处理器40执行所述计算机指令42时实现上述各实施例中各单元的功能,例如图6所示单元310至350功能。

示例性地,所述计算机指令42可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器41中,并由所述处理器40执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机指令段,该指令段用于描述所述计算机指令42在所述检测授权的终端4中的执行过程。例如,所述计算机指令42可以被分割为第一获取单元、第二获取单元、判断单元、第一处理单元以及第二处理单元,各单元具体功能如上所述。

所述检测授权的终端可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图7仅仅是检测授权的终端4的示例,并不构成对检测授权的终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述检测授权的终端还可以包括输入输出终端、网络接入终端、总线等。

所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器41可以是所述检测授权的终端的内部存储单元,例如检测授权的终端的硬盘或内存。所述存储器41也可以是所述检测授权的终端的外部存储终端,例如所述检测授权的终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述检测授权的终端的内部存储单元也包括外部存储终端。所述存储器41用于存储所述计算机指令以及所述终端所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神范围,均应包含在本申请的保护范围之内。

相关技术
  • 一种检测授权的方法、装置、终端及存储介质
  • 一种授权终端分发方法、装置及授权终端获取方法、装置
技术分类

06120112624178