小程序安全调试方法、装置、移动终端及存储介质
文献发布时间:2023-06-19 10:19:37
技术领域
本发明涉及移动终端技术领域,具体涉及一种小程序安全调试方法、装置、移动终端及存储介质。
背景技术
小程序(Mini Program)是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,也体现了“用完即走”的理念。
有些小程序会运行在十几个甚至几十个APP上面,因为各个APP的功能不一样,代码风格也不一样,小程序经常会出现各种兼容性问题,APP的开发者因为业务需求较多,有时候不方便帮忙排查问题,这个时候SDK的开发和测试需要对SDK的一些配置进行修改,比如日志的开关,手势的开关,域名校验的开关,SDK环境,请求的超时阈值,宿主ID等等,尝试找出问题的原因。
发明人在实现本发明的过程中发现,手动修改SDK配置后,还需要宿主开发者修改代码,并重新打包,费时费力,导致小程序的运行效率降低;而在SDK内部添加功能,进行直接修改又会引起小程序的安全问题。
因此,如何提供安全且通用的SDK配置修改方案成了一个急需解决的问题。
发明内容
鉴于以上内容,有必要提出一种小程序安全调试方法、装置、移动终端及存储介质,能够在小程序运行出错时快速的对小程序进行调试,且确保小程序的运行安全。
本发明的第一方面提供一种小程序安全调试方法,所述方法包括:
当侦测到小程序运行出错时,确定承载所述小程序运行的宿主应用;
获取所述宿主应用的名称的前缀,并获取预先设置的参数口令;
响应于用户输入的第一配置参数修改指令,根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL;
通过所述宿主应用传递所述第一URL给SDK,并通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对;
根据所述第一目标配置参数对刷新所述小程序的页面。
在一个可选的实施例中,所述根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL包括:
解析所述第一配置参数修改指令得到所述第一配置参数的参数值;
获取日志参数,并定义所述日志参数的参数值为预设值;
按照预设操作符连接所述日志参数、所述日志参数的参数值、所述第一配置参数及所述第一配置参数的参数值,得到参数描述;
按照预设格式基于所述前缀、所述参数口令及所述参数描述生成第一URL。
在一个可选的实施例中,所述通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对包括:
通过所述SDK对所述第一URL进行解析得到主机名称及参数描述;
判断所述主机名称与所述参数口令是否一致;
当确定所述主机名称与所述参数口令一致时,根据预设的第一操作符对所述参数描述进行第一分割得到多个子参数描述;
根据预设的第二操作符对所述多个子参数描述进行第二分割得到多个配置参数及每个配置参数的参数值;
获取所述第一配置参数修改指令中的第一配置参数的参数修改值;
使用所述参数修改值热更新对应的配置参数的参数值,得到第一目标配置参数对。
在一个可选的实施例中,所述方法还包括:
获取其他小程序运行出错时的多个历史系统日志;
定位所述多个历史系统日志中的多个问题点;
提取所述多个问题点中的多个关键字段;
根据所述多个关键字段配置多个配置参数;
响应于小程序安全调试界面打开的指令,在所述小程序安全调试界面上显示所述多个配置参数。
在一个可选的实施例中,所述方法还包括:
当根据所述第一目标配置参数对刷新所述小程序的页面刷新失败时,接收用户输入的第二配置参数修改指令;
根据所述前缀、所述参数口令及所述第二配置参数修改指令生成第二URL;
通过所述宿主应用传递所述第二URL给所述SDK,并通过所述SDK根据所述第二URL对所述第二配置参数进行热更新得到第二目标配置参数对;
根据所述第二目标配置参数对刷新所述小程序的页面。
在一个可选的实施例中,所述方法还包括:
获取刷新所述小程序的页面的刷新结果;
关联存储所述刷新结果及对应的目标配置参数;
计算所述刷新结果为第一刷新结果对应的目标配置参数的个数;
根据所述目标配置参数的个数确定常见问题点。
在一个可选的实施例中,所述方法还包括:
响应于所述小程序的启动指令,获取所述小程序的更新时间;
根据所述更新时间判断是否需要更新所述小程序;
当根据所述更新时间判断需要更新所述小程序时,下载所述小程序的更新包,并在下次启动所述小程序时根据所述更新包更新所述小程序。
本发明的第二方面提供一种小程序安全调试装置,所述装置包括:
承载模块,用于当侦测到小程序运行出错时,确定承载所述小程序运行的宿主应用;
获取模块,用于获取所述宿主应用的名称的前缀,并获取预先设置的参数口令;
生成模块,用于响应于用户输入的第一配置参数修改指令,根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL;
更新模块,用于通过所述宿主应用传递所述第一URL给SDK,并通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对;
刷新模块,用于根据所述第一目标配置参数对刷新所述小程序的页面。
本发明的第三方面提供一种移动终端,所述移动终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述小程序安全调试方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述小程序安全调试方法。
综上所述,本发明所述的小程序安全调试方法、装置、移动终端及存储介质,在小程序运行出错时,确定承载所述小程序运行的宿主应用的名称的前缀,响应于用户输入的第一配置参数修改指令,根据所述前缀、预先设置的参数口令及所述第一配置参数修改指令生成第一URL,接着通过所述宿主应用传递所述第一URL给SDK,使得所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对,从而使得移动终端根据所述第一目标配置参数对刷新所述小程序的页面。本发明在小程序运行出错时,通过参数口令对小程序的配置参数动态修改,对小程序的调试效率高,且不需要通过宿主应用修改代码,提高了小程序的安全性。
附图说明
图1是本发明实施例一提供的小程序安全调试方法的流程图。
图2是本发明实施例二提供的小程序安全调试装置的结构图。
图3是本发明实施例三提供的移动终端的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例提供的小程序安全调试方法由移动终端执行,相应地,小程序安全调试装置运行于移动终端中。
图1是本发明实施例一提供的小程序安全调试方法的流程图。所述小程序安全调试方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,当侦测到小程序运行出错时,确定承载所述小程序运行的宿主应用。
其中,宿主应用是指为小程序提供运行环境的应用,使得小程序依托于宿主应用在移动终端上运行。其中宿主应用比如为手机百度等。一个宿主应用中可以运行多个小程序,例如,宿主应用XX1中运行小程序Y1和小程序Y2。一个小程序可以运行在多个宿主应用中,例如,小程序Y3可以运行在宿主应用XX2和宿主应用XX3中。
小程序是一种不需要下载安装即可使用的应用,可以运行在不同的应用环境(即宿主)中,比如网页浏览器应用程序、即时通信应用程序等。
移动终端可以通过throws Exception方法侦测小程序运行是否出错,在侦测到小程序运行出错时,确定为小程序提供运行环境的宿主应用。
S12,获取所述宿主应用的名称的前缀,并获取预先设置的参数口令。
移动终端中预先存储有参数口令,用以根据所述参数口令修改配置参数。
其中,所述参数口令,可以为refreshConfig。
在其他实施例中,移动终端中还可以预先存储有参数口令表,所述参数口令表中记录有宿主应用的名称的前缀及对应的参数口令表。通过所述参数口令表匹配出与宿主应用的名称的前缀对应的参数口令表。为不同的宿主应用设置不同的参数口令表,能够在小程序同时运行在多个宿主应用中均出错时,根据不同的参数口令表修改不同的宿主应用的参数配置。例如,微信小程序同时运行在宿主应用XX1和宿主应用XX2中,如果微信小程序在这两个宿主应用中同时出错时,移动终端可以获取与宿主应用XX1的名称的前缀对应的参数口令P1及与宿主应用XX2的名称的前缀对应的参数口令P2,通过参数口令P1实现对宿主应用XX1的配置参数的修改,通过参数口令P2实现对宿主应用XX2的配置参数的修改。
S13,响应于用户输入的第一配置参数修改指令,根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL。
宿主应用可以通过前缀(scheme)唤起,不同的scheme可以唤起不同的宿主,scheme后面可以带参数,形成一个URL。
用户可以点击或者触摸移动终端上的小程序安全调试功能图标来触发启动小程序安全调试功能,从而在移动终端上显示小程序安全调试界面。
用户可以在所述小程序安全调试界面中输入第一配置参数修改指令,以使得移动终端根据所述第一配置参数修改指令生成第一URL。
在一个可选的实施例中,所述根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL包括:
解析所述第一配置参数修改指令得到所述第一配置参数的参数值;
获取日志参数,并定义所述日志参数的参数值为预设值;
按照预设操作符连接所述日志参数、所述日志参数的参数值、所述第一配置参数及所述第一配置参数的参数值,得到参数描述;
按照预设格式基于所述前缀、所述参数口令及所述参数描述生成第一URL。
其中,所述预设操作符为“=”和“&”,操作符“=”为赋值符号,操作符“&”为连接符号。
示例性的,假设移动终端解析所述第一配置参数修改指令得到的第一配置参数为enableCheckDomain及得到的第一配置参数的参数值为0,移动终端定义的日志参数为enableLog及日志参数的参数值为1,参数口令为refreshConfig,宿主应用的名称的前缀为Yiqianbao,则按照预设操作符连接所述日志参数、所述日志参数的参数值、所述第一配置参数及所述第一配置参数的参数值得到的参数描述为enableLog=1&enableCheckDomain=0。接着,移动终端按照预设格式基于所述前缀、所述参数口令及所述参数描述生成的第一URL为:Yiqianbao://refreshConfig?enableLog=1&enableCheckDomain=0。
在其他实施例中,也可以不需要事先定义日志参数的参数值为预设值。即,移动终端所述根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL中可以不需要包括日志参数。
该可选的实施例中,通过指定日志参数的参数值为预设值(例如,1),并在生成的第一URL中包括日志参数及日志参数的参数值,使得移动终端根据所述第一URL执行打开系统日志的操作时,将系统日志打印出来显示给用户,便于用户根据系统日志快速定位小程序运行出错的问题点,避免用户在小程序运行出错对小程序进行安全调试时,需要手动输入日志参数并输入日志参数的参数值,因而,提高了第一URL的生成效率,进而提高了对小程序进行安全调试的效率。
S14,通过所述宿主应用传递所述第一URL给SDK,并通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对。
因为一些业务需求,通过scheme唤起宿主后,宿主会把URL传递给SDK进行处理,比如拉起指定的小程序。
在一个可选的实施例中,所述通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对包括:
通过所述SDK对所述第一URL进行解析得到主机名称及参数描述;
判断所述主机名称与所述参数口令是否一致;
当确定所述主机名称与所述参数口令一致时,根据预设的第一操作符对所述参数描述进行第一分割得到多个子参数描述;
根据预设的第二操作符对所述多个子参数描述进行第二分割得到多个配置参数及每个配置参数的参数值;
获取所述第一配置参数修改指令中的第一配置参数的参数修改值;
使用所述参数修改值热更新对应的配置参数的参数值,得到第一目标配置参数对。
示例性的,上述的Yiqianbao就是壹钱包的scheme,通过Yiqianbao可以调起壹钱包,然后壹钱包会将第一URL传递给SDK,SDK会对第一URL进行解析,得到主机名称及参数描述。其中,主机名称为refreshConfig,与前面定义好的口令匹配,SDK将进行热更新配置参数的操作。
示例性的,假设第一URL为Yiqianbao://refreshConfig?enableLog=1&weChatId=AA,移动终端获取第一URL中的参数描述为enableLog=1&weChatId=AA,然后使用预设的第一操作符“&”进行第一分割,得到第一子参数描述enableLog=1和第二子参数描述weChatId=AA,再通过预设的第二操作符“=”进行第二分割,得到配置参数enableLog参数值为1及得到配置参数weChatId参数值为AA。假设用户输入的第一配置参数修改指令中的第一配置参数weChatId的参数修改值为BB,得到的第一目标配置参数对为(weChatId,BB)。
移动终端判断所述主机名称与所述参数口令不一致时,表明SDK接收到的第一URL并不是根据用户输入的第一参数配置指令得到的,可以不执行任何操作。
S15,根据所述第一目标配置参数对刷新所述小程序的页面。
移动终端可以预先设置时间段,在侦测到所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对后的预设时间段内,自动的根据所述第一目标配置参数对刷新所述小程序的页面。移动终端还可以在接收到所述小程序的页面的刷新指令时,响应于所述刷新指令,根据所述第一目标配置参数对刷新所述小程序的页面。
示例性的,假设小程序在显示某张图片时出错,显示出错的图片的名称为第一名称,响应于用户输入的图片的名称配置参数修改指令,移动终端生成第一URL,宿主应用传递第一URL给SDK,SDK根据第一URL对所述图片的名称配置参数进行热更新得到图片的名称目标配置参数,图片的名称目标配置参数对应的图片的名称为第二名称,在接收到所述小程序的页面的刷新指令时,根据图片的名称目标配置参数显示第二名称对应的图片。
在一个可选的实施例中,所述方法还包括:
当根据所述第一目标配置参数对刷新所述小程序的页面刷新失败时,接收用户输入的第二配置参数修改指令;
根据所述前缀、所述参数口令及所述第二配置参数修改指令生成第二URL;
通过所述宿主应用传递所述第二URL给所述SDK,并通过所述SDK根据所述第二URL对所述第二配置参数进行热更新得到第二目标配置参数对;
根据所述第二目标配置参数对刷新所述小程序的页面。
当根据所述第一目标配置参数对刷新所述小程序的页面刷新失败时,表明用户输入的第一配置参数修改指令对应的配置参数无法实现对小程序的配置参数的热更新,无法解决小程序运行出错的问题,移动终端可以需要采用试探法逐个试探修改配置参数。
在接收到用户输入的第二配置参数修改指令后,按照第一配置参数修改指令对应的过程得到第二目标配置参数对,并根据第二目标配置参数对刷新所述小程序的页面。之后,获取根据第二目标配置参数对刷新所述小程序的页面的刷新结果,如果刷新失败,表明用户输入的第二配置参数修改指令对应的配置参数无法实现对小程序的配置参数的热更新,也无法解决小程序运行出错的问题,用户可以输入第三个配置参数修改指令来实现小程序的配置参数的修改。如果刷新成功,表明用户输入的第二配置参数修改指令对应的配置参数能够实现对小程序的配置参数的热更新,能够解决小程序运行出错的问题,使得小程序运行正常。
在一个可选的实施例中,在S11之前,所述方法还包括:
获取其他小程序运行出错时的多个历史系统日志;
定位所述多个历史系统日志中的多个问题点;
提取所述多个问题点中的多个关键字段;
根据所述多个关键字段配置多个配置参数;
响应于小程序安全调试界面打开的指令,在所述小程序安全调试界面上显示所述多个配置参数。
移动终端可以获取其他小程序或者所述小程序运行出错时的多个历史系统日志,也可以接受其他移动终端发送的小程序运行出错时的多个历史系统日志。
系统日志记录了所有事件的发生时间、访问源等内容。当某个事件出错时,会有特定的标识符进行标识,通过特定的标识符可以快速的定位出系统日志中出问题的问题点,通过提取问题点中的关键字段来进行配置参数的配置。
其中,所述配置参数可以包括日志的开关,手势的开关,域名校验的开关,SDK环境,请求的超时阈值,宿主ID等。
该可选的实施例中,通过历史系统日志能够确定小程序运行时所有可能出错的问题点,并根据问题点实现配置参数的配置,使得配置参数更加全面且准确,能够提高配置参数的配置效率;将多个配置参数显示在小程序安全调试界面上,能够起到提示用户的作用,便于用户根据多个配置参数快速的对宿主应用进行配置。
在一个可选的实施例中,所述方法还包括:
获取刷新所述小程序的页面的刷新结果;
关联存储所述刷新结果及对应的目标配置参数;
计算所述刷新结果为第一刷新结果对应的目标配置参数的个数;
根据所述目标配置参数的个数确定常见问题点。
其中,所述刷新结果包括第一结果和第二结果,所述第一结果用以指示小程序的页面刷新成功,即,移动终端能够正常运行小程序,所述第二结果用以指示小程序的页面刷新失败,即,移动终端依然无法正常运行小程序。
将第一目标配置参数对及对应的刷新结果,第二目标配置参数对及对应的刷新结果关联存储在移动终端的本地数据库中。
移动终端在本地数据库中的数据量超过预设数据量阈值时,获取本地数据库中第一刷新结果对应的目标配置参数,并计算所获取的目标配置参数的个数。目标配置参数的个数越多,表明小程序运行出错大部分原因在于所述目标配置参数对应的配置参数配置错误,这是一个常见的问题点;目标小程序参数的个数越少,表明小程序运行出错极少原因在于所述目标配置参数对应的配置参数配置错误,这是一个偶然的问题点。
该可选的实施例中,通过计算所述刷新结果为第一刷新结果对应的目标配置参数的个数,并根据所述目标配置参数的个数确定常见问题点,即通过统计学的方式确定常见问题点,常见问题点的确定更为客观,准确率更高。将常见问题点确定出来,便于在用户配置小程序的配置参数时能够起到警示作用,避免小程序的配置参数出错,导致小程序无法正常运行,从而提高小程序的运行效率。
在一个可选的实施例中,所述方法还包括:
响应于所述小程序的启动指令,获取所述小程序的更新时间;
根据所述更新时间判断是否需要更新所述小程序;
当根据所述更新时间判断需要更新所述小程序时,下载所述小程序的更新包,并在下次启动所述小程序时根据所述更新包更新所述小程序。
移动终端计算所述更新时间与当前时间的时间差值,判断所述时间差值是否大于预设差值阈值,当所述时间差值大于预设差值阈值,表明小程序已长时间未进行更新,则下载所述小程序的更新包,当所述时间差值小于或者等于所述预设差值阈值,表明小程序的更新时间不长,则不需要下载所述小程序的更新包。
该可选的实施例中,在确定需要对所述小程序进行更新时,下载所述小程序的更新包,以在下次启动所述小程序时根据所述更新包更新所述小程序,能够不影响移动终端的用户对所述小程序的使用,并将小程序更新到最新状态。
本发明提供的方法,在小程序运行出错时,确定承载所述小程序运行的宿主应用的名称的前缀,响应于用户输入的第一配置参数修改指令,根据所述前缀、预先设置的参数口令及所述第一配置参数修改指令生成第一URL,接着通过所述宿主应用传递所述第一URL给SDK,使得所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对,从而使得移动终端根据所述第一目标配置参数对刷新所述小程序的页面。本发明在小程序运行出错时,通过参数口令对小程序的配置参数动态修改,对小程序的调试效率高,且不需要通过宿主应用修改代码,提高了小程序的安全性。
需要强调的是,为进一步保证上述多个配置参数的私密性和安全性,上述多个配置参数可存储于区块链的节点中。
图2是本发明实施例二提供的小程序安全调试装置的结构图。
在一些实施例中,所述小程序安全调试装置20可以包括多个由计算机程序段所组成的功能模块。所述小程序安全调试装置20中的各个程序段的计算机程序可以存储于移动终端的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)小程序安全调试的功能。
本实施例中,所述小程序安全调试装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:承载模块201、获取模块202、生成模块203、更新模块204、刷新模块205、显示模块206、计算模块207及下载模块208。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述承载模块201,用于当侦测到小程序运行出错时,确定承载所述小程序运行的宿主应用。
其中,宿主应用是指为小程序提供运行环境的应用,使得小程序依托于宿主应用在移动终端上运行。其中宿主应用比如为手机百度等。一个宿主应用中可以运行多个小程序,例如,宿主应用XX1中运行小程序Y1和小程序Y2。一个小程序可以运行在多个宿主应用中,例如,小程序Y3可以运行在宿主应用XX2和宿主应用XX3中。
小程序是一种不需要下载安装即可使用的应用,可以运行在不同的应用环境(即宿主)中,比如网页浏览器应用程序、即时通信应用程序等。
移动终端可以通过throws Exception方法侦测小程序运行是否出错,在侦测到小程序运行出错时,确定为小程序提供运行环境的宿主应用。
所述获取模块202,用于获取所述宿主应用的名称的前缀,并获取预先设置的参数口令。
移动终端中预先存储有参数口令,用以根据所述参数口令修改配置参数。
其中,所述参数口令,可以为refreshConfig。
在其他实施例中,移动终端中还可以预先存储有参数口令表,所述参数口令表中记录有宿主应用的名称的前缀及对应的参数口令表。通过所述参数口令表匹配出与宿主应用的名称的前缀对应的参数口令表。为不同的宿主应用设置不同的参数口令表,能够在小程序同时运行在多个宿主应用中均出错时,根据不同的参数口令表修改不同的宿主应用的参数配置。例如,微信小程序同时运行在宿主应用XX1和宿主应用XX2中,如果微信小程序在这两个宿主应用中同时出错时,移动终端可以获取与宿主应用XX1的名称的前缀对应的参数口令P1及与宿主应用XX2的名称的前缀对应的参数口令P2,通过参数口令P1实现对宿主应用XX1的配置参数的修改,通过参数口令P2实现对宿主应用XX2的配置参数的修改。
所述生成模块203,用于响应于用户输入的第一配置参数修改指令,根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL。
宿主应用可以通过前缀(scheme)唤起,不同的scheme可以唤起不同的宿主,scheme后面可以带参数,形成一个URL。
用户可以点击或者触摸移动终端上的小程序安全调试功能图标来触发启动小程序安全调试功能,从而在移动终端上显示小程序安全调试界面。
用户可以在所述小程序安全调试界面中输入第一配置参数修改指令,以使得移动终端根据所述第一配置参数修改指令生成第一URL。
在一个可选的实施例中,所述生成模块203根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL包括:
解析所述第一配置参数修改指令得到所述第一配置参数的参数值;
获取日志参数,并定义所述日志参数的参数值为预设值;
按照预设操作符连接所述日志参数、所述日志参数的参数值、所述第一配置参数及所述第一配置参数的参数值,得到参数描述;
按照预设格式基于所述前缀、所述参数口令及所述参数描述生成第一URL。
其中,所述预设操作符为“=”和“&”,操作符“=”为赋值符号,操作符“&”为连接符号。
示例性的,假设移动终端解析所述第一配置参数修改指令得到的第一配置参数为enableCheckDomain及得到的第一配置参数的参数值为0,移动终端定义的日志参数为enableLog及日志参数的参数值为1,参数口令为refreshConfig,宿主应用的名称的前缀为Yiqianbao,则按照预设操作符连接所述日志参数、所述日志参数的参数值、所述第一配置参数及所述第一配置参数的参数值得到的参数描述为enableLog=1&enableCheckDomain=0。接着,移动终端按照预设格式基于所述前缀、所述参数口令及所述参数描述生成的第一URL为:Yiqianbao://refreshConfig?enableLog=1&enableCheckDomain=0。
在其他实施例中,也可以不需要事先定义日志参数的参数值为预设值。即,移动终端所述根据所述前缀、所述参数口令及所述第一配置参数修改指令生成第一URL中可以不需要包括日志参数。
该可选的实施例中,通过指定日志参数的参数值为预设值(例如,1),并在生成的第一URL中包括日志参数及日志参数的参数值,使得移动终端根据所述第一URL执行打开系统日志的操作时,将系统日志打印出来显示给用户,便于用户根据系统日志快速定位小程序运行出错的问题点,避免用户在小程序运行出错对小程序进行安全调试时,需要手动输入日志参数并输入日志参数的参数值,因而,提高了第一URL的生成效率,进而提高了对小程序进行安全调试的效率。
所述更新模块204,用于通过所述宿主应用传递所述第一URL给SDK,并通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对。
因为一些业务需求,通过scheme唤起宿主后,宿主会把URL传递给SDK进行处理,比如拉起指定的小程序。
在一个可选的实施例中,所述更新模块204通过所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对包括:
通过所述SDK对所述第一URL进行解析得到主机名称及参数描述;
判断所述主机名称与所述参数口令是否一致;
当确定所述主机名称与所述参数口令一致时,根据预设的第一操作符对所述参数描述进行第一分割得到多个子参数描述;
根据预设的第二操作符对所述多个子参数描述进行第二分割得到多个配置参数及每个配置参数的参数值;
获取所述第一配置参数修改指令中的第一配置参数的参数修改值;
使用所述参数修改值热更新对应的配置参数的参数值,得到第一目标配置参数对。
示例性的,上述的Yiqianbao就是壹钱包的scheme,通过Yiqianbao可以调起壹钱包,然后壹钱包会将第一URL传递给SDK,SDK会对第一URL进行解析,得到主机名称及参数描述。其中,主机名称为refreshConfig,与前面定义好的口令匹配,SDK将进行热更新配置参数的操作。
示例性的,假设第一URL为Yiqianbao://refreshConfig?enableLog=1&weChatId=AA,移动终端获取第一URL中的参数描述为enableLog=1&weChatId=AA,然后使用预设的第一操作符“&”进行第一分割,得到第一子参数描述enableLog=1和第二子参数描述weChatId=AA,再通过预设的第二操作符“=”进行第二分割,得到配置参数enableLog参数值为1及得到配置参数weChatId参数值为AA。假设用户输入的第一配置参数修改指令中的第一配置参数weChatId的参数修改值为BB,得到的第一目标配置参数对为(weChatId,BB)。
移动终端判断所述主机名称与所述参数口令不一致时,表明SDK接收到的第一URL并不是根据用户输入的第一参数配置指令得到的,可以不执行任何操作。
所述刷新模块205,用于根据所述第一目标配置参数对刷新所述小程序的页面。
移动终端可以预先设置时间段,在侦测到所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对后的预设时间段内,自动的根据所述第一目标配置参数对刷新所述小程序的页面。移动终端还可以在接收到所述小程序的页面的刷新指令时,响应于所述刷新指令,根据所述第一目标配置参数对刷新所述小程序的页面。
示例性的,假设小程序在显示某张图片时出错,显示出错的图片的名称为第一名称,响应于用户输入的图片的名称配置参数修改指令,移动终端生成第一URL,宿主应用传递第一URL给SDK,SDK根据第一URL对所述图片的名称配置参数进行热更新得到图片的名称目标配置参数,图片的名称目标配置参数对应的图片的名称为第二名称,在接收到所述小程序的页面的刷新指令时,根据图片的名称目标配置参数显示第二名称对应的图片。
在一个可选的实施例中,所述生成模块203,还用于当根据所述第一目标配置参数对刷新所述小程序的页面刷新失败时,接收用户输入的第二配置参数修改指令;根据所述前缀、所述参数口令及所述第二配置参数修改指令生成第二URL。
所述更新模块204,还用于通过所述宿主应用传递所述第二URL给所述SDK,并通过所述SDK根据所述第二URL对所述第二配置参数进行热更新得到第二目标配置参数对。
所述刷新模块205,还用于根据所述第二目标配置参数对刷新所述小程序的页面。
当根据所述第一目标配置参数对刷新所述小程序的页面刷新失败时,表明用户输入的第一配置参数修改指令对应的配置参数无法实现对小程序的配置参数的热更新,无法解决小程序运行出错的问题,移动终端可以需要采用试探法逐个试探修改配置参数。
在接收到用户输入的第二配置参数修改指令后,按照第一配置参数修改指令对应的过程得到第二目标配置参数对,并根据第二目标配置参数对刷新所述小程序的页面。之后,获取根据第二目标配置参数对刷新所述小程序的页面的刷新结果,如果刷新失败,表明用户输入的第二配置参数修改指令对应的配置参数无法实现对小程序的配置参数的热更新,也无法解决小程序运行出错的问题,用户可以输入第三个配置参数修改指令来实现小程序的配置参数的修改。如果刷新成功,表明用户输入的第二配置参数修改指令对应的配置参数能够实现对小程序的配置参数的热更新,能够解决小程序运行出错的问题,使得小程序运行正常。
所述显示模块206,用于获取其他小程序运行出错时的多个历史系统日志;
定位所述多个历史系统日志中的多个问题点;提取所述多个问题点中的多个关键字段;根据所述多个关键字段配置多个配置参数;响应于小程序安全调试界面打开的指令,在所述小程序安全调试界面上显示所述多个配置参数。
移动终端可以获取其他小程序或者所述小程序运行出错时的多个历史系统日志,也可以接受其他移动终端发送的小程序运行出错时的多个历史系统日志。
系统日志记录了所有事件的发生时间、访问源等内容。当某个事件出错时,会有特定的标识符进行标识,通过特定的标识符可以快速的定位出系统日志中出问题的问题点,通过提取问题点中的关键字段来进行配置参数的配置。
其中,所述配置参数可以包括日志的开关,手势的开关,域名校验的开关,SDK环境,请求的超时阈值,宿主ID等。
该可选的实施例中,通过历史系统日志能够确定小程序运行时所有可能出错的问题点,并根据问题点实现配置参数的配置,使得配置参数更加全面且准确,能够提高配置参数的配置效率;将多个配置参数显示在小程序安全调试界面上,能够起到提示用户的作用,便于用户根据多个配置参数快速的对宿主应用进行配置。
所述计算模块207,还用于获取刷新所述小程序的页面的刷新结果;关联存储所述刷新结果及对应的目标配置参数;计算所述刷新结果为第一刷新结果对应的目标配置参数的个数;根据所述目标配置参数的个数确定常见问题点。
其中,所述刷新结果包括第一结果和第二结果,所述第一结果用以指示小程序的页面刷新成功,即,移动终端能够正常运行小程序,所述第二结果用以指示小程序的页面刷新失败,即,移动终端依然无法正常运行小程序。
将第一目标配置参数对及对应的刷新结果,第二目标配置参数对及对应的刷新结果关联存储在移动终端的本地数据库中。
移动终端在本地数据库中的数据量超过预设数据量阈值时,获取本地数据库中第一刷新结果对应的目标配置参数,并计算所获取的目标配置参数的个数。目标配置参数的个数越多,表明小程序运行出错大部分原因在于所述目标配置参数对应的配置参数配置错误,这是一个常见的问题点;目标小程序参数的个数越少,表明小程序运行出错极少原因在于所述目标配置参数对应的配置参数配置错误,这是一个偶然的问题点。
该可选的实施例中,通过计算所述刷新结果为第一刷新结果对应的目标配置参数的个数,并根据所述目标配置参数的个数确定常见问题点,即通过统计学的方式确定常见问题点,常见问题点的确定更为客观,准确率更高。将常见问题点确定出来,便于在用户配置小程序的配置参数时能够起到警示作用,避免小程序的配置参数出错,导致小程序无法正常运行,从而提高小程序的运行效率。
所述下载模块208,用于响应于所述小程序的启动指令,获取所述小程序的更新时间;根据所述更新时间判断是否需要更新所述小程序;当根据所述更新时间判断需要更新所述小程序时,下载所述小程序的更新包,并在下次启动所述小程序时根据所述更新包更新所述小程序。
移动终端计算所述更新时间与当前时间的时间差值,判断所述时间差值是否大于预设差值阈值,当所述时间差值大于预设差值阈值,表明小程序已长时间未进行更新,则下载所述小程序的更新包,当所述时间差值小于或者等于所述预设差值阈值,表明小程序的更新时间不长,则不需要下载所述小程序的更新包。
该可选的实施例中,在确定需要对所述小程序进行更新时,下载所述小程序的更新包,以在下次启动所述小程序时根据所述更新包更新所述小程序,能够不影响移动终端的用户对所述小程序的使用,并将小程序更新到最新状态。
本发明提供的装置,在小程序运行出错时,确定承载所述小程序运行的宿主应用的名称的前缀,响应于用户输入的第一配置参数修改指令,根据所述前缀、预先设置的参数口令及所述第一配置参数修改指令生成第一URL,接着通过所述宿主应用传递所述第一URL给SDK,使得所述SDK根据所述第一URL对所述第一配置参数进行热更新得到第一目标配置参数对,从而使得移动终端根据所述第一目标配置参数对刷新所述小程序的页面。本发明在小程序运行出错时,通过参数口令对小程序的配置参数动态修改,对小程序的调试效率高,且不需要通过宿主应用修改代码,提高了小程序的安全性。
需要强调的是,为进一步保证上述多个配置参数的私密性和安全性,上述多个配置参数可存储于区块链的节点中。
参阅图3所示,为本发明实施例三提供的移动终端的结构示意图。在本发明较佳实施例中,所述移动终端3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的移动终端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述移动终端3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述移动终端3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述移动终端3还可包括计算机设备和客户端设备,所述客户端设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述移动终端3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31中存储有计算机程序,所述计算机程序被所述至少一个处理器32执行时实现如所述的小程序安全调试方法中的全部或者部分步骤。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一些实施例中,所述至少一个处理器32是所述移动终端3的控制核心(ControlUnit),利用各种接口和线路连接整个移动终端3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行移动终端3的各种功能和处理数据。例如,所述至少一个处理器32执行所述存储器中存储的计算机程序时实现本发明实施例中所述的小程序安全调试方法的全部或者部分步骤;或者实现小程序安全调试装置的全部或者部分功能。所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述移动终端3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述移动终端3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台移动终端(可以是个人计算机,移动终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。说明书中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
- 小程序安全调试方法、装置、移动终端及存储介质
- 一种小程序调试方法、装置、设备及存储介质