具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的功能启动方法的方法流程图,该功能启动方法可以应用于终端中,该终端包括客户端和与客户端对应的启动程序。该功能启动方法,包括:
步骤101,通过启动程序接收操作系统从预定链接中提取的启动参数,该预定链接包括协议头和启动参数;该启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL(Uniform Resource Locator,统一资源定位符)协议的程序是启动程序后,发送给启动程序的;
本实施例中,预定链接包括协议头和启动参数,用于指示所要启动的功能。其中,协议头用于指示处理该协议头对应的自定义URL协议的启动程序,自定义URL协议是用户自定义的URL协议。启动参数用于指示需要启动的功能,在操作系统确定了启动程序后发送给启动程序进行处理。
若预定链接是用户输入的链接,可以在用户确定输入完成时触发预定链接;若预定链接是预先编辑在网页中的链接,可以在用户点击该链接时触发预定链接。当然,还有其他触发预定链接的方式,本实施例不对触发预定链接的方式作限定。
步骤102,通过启动程序将启动参数传递给客户端;
由于功能需要由客户端启动,因此,启动程序可以确定出客户端,并将接收到的启动参数传递给该客户端。
步骤103,通过客户端根据启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能。
客户端识别出接收到启动参数后,在至少一项功能中确定该启动参数所指示的功能,并启动该功能。
综上所述,本发明实施例提供的功能启动方法,通过启动程序接收操作系统从预定链接中提取的启动参数,预定链接包括协议头和启动参数;启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;通过启动程序将启动参数传递给客户端;通过客户端根据启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能,可以根据预定链接包括的启动参数直接启动功能,解决了用户根据功能介绍信息启动功能需要跳转较多界面造成的大大降低功能启动效率的问题,达到了提高功能启动效率的效果。
请参考图2,其示出了本发明另一实施例提供的功能启动方法的方法流程图,该功能启动方法可以应用于终端中,该终端包括客户端和与客户端对应的启动程序。具体地,本实施例以功能启动方法应用于终端中安装的应用程序中且该应用程序包括客户端和与该客户端对应的启动程序为例进行说明。该功能启动方法,包括:
步骤201,在操作系统中注册协议头;在操作系统中将启动程序注册为用于处理协议头所对应的自定义URL协议的程序;
本实施例通过对预定链接进行处理来启动功能,因此,在触发预定链接之后,操作系统需要根据预定链接包括的协议头确定处理该协议头对应的自定义URL协议的启动程序,从而将预定链接所包括的启动参数发送给启动程序进行处理。其中,自定义URL协议是用户自定义的URL协议。假设自定义URL协议是y协议,则与该协议对应的协议头可以是y://。进一步假设需要启动的功能是频道,则启动参数可以是pd-[sid=123],用于指示启动频道号是123的频道,此时的预定链接是y://pd-[sid=123]。
因此,本实施例需要在操作系统中注册协议头和用于处理协议头所对应的自定义URL协议的启动程序。具体地,在运行安装包中的安装程序来安装应用程序的过程中,安装程序可以调用启动程序,启动程序可以在操作系统的注册表中注册协议头,再将启动程序注册为用于处理该协议头对应的自定义URL协议的程序。其中,将启动程序注册为用于处理该协议头对应的自定义URL协议的程序可以是在注册表中注册启动程序的路径。
以自定义URL协议为y协议为例进行说明,则启动程序可以通过以下步骤进行注册:
1)注册y协议头;
SHSetValue(HKEY_CLASSES_ROOT,L"y",L"URL Protocol",REG_SZ,NULL,0);
2)注册shell和open;
TCHAR*pStrAction=L"open";
DWORD cbData=(DWORD)_tcsclen(pStrAction)*sizeof(TCHAR);
SHSetValue(HKEY_CLASSES_ROOT,L"y\\shell",L"",REG_SZ,pStrAction,cbData);
SHSetValue(HKEY_CLASSES_ROOT,L"y\\shell\\open",L"",REG_SZ,NULL,0);
3)注册启动程序的路径;
std::wostringstream oss;
oss<<L"\""<<strYRunPath<<L"\""<<L"%1";(YrunPath即为启动程序的路径)
cbData=(DWORD)oss.str().size()*sizeof(TCHAR);
SHSetValue(HKEY_CLASSES_ROOT,L"y\\shell\\open\\command",L"",REG_SZ,oss.str().c_str(),cbData)。
步骤202,通过启动程序接收操作系统从预定链接中提取的启动参数,该预定链接包括协议头和启动参数;该启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;
在预定链接被触发后,操作系统读取预定链接包括的协议头,并在注册表中查找与该协议头对应的自定义URL协议,若查找到与该协议头对应的自定义URL协议,则操作系统确定用于处理该自定义URL协议的启动程序,并将预定链接包括的启动参数发送给该启动程序,由该启动程序进行处理。
若预定链接是用户输入的链接,可以在用户确定输入完成时触发预定链接;若预定链接是预先编辑在网页中的链接,可以在用户点击该链接时触发预定链接。当然,还有其他触发预定链接的方式,本实施例不对触发预定链接的方式作限定。
步骤203,通过启动程序将启动参数传递给客户端;
由于功能需要由客户端启动,因此,启动程序可以确定出客户端,并将接收到的启动参数传递给该客户端。
本实施例中,通过启动程序将启动参数传递给客户端之前,还包括:若客户端处于关闭状态,则通过启动程序启动客户端。
其中,由于启动程序确定出的客户端可能处于启动状态,也可能处于关闭状态。若启动程序确定出的客户端处于启动状态,则启动程序可以直接将启动参数传递给该客户端;若启动程序确定出的客户端处于关闭状态,则启动程序在传递启动参数之前还需要启动客户端。优选地,启动程序还可以带启动参数启动客户端,即在启动客户端的命令中携带启动参数,从而节省了发送启动客户端的命令启动客户端后再发送启动参数造成的信令浪费。
进一步地,由于客户端与登录的用户账户一一对应,因此,若用户在终端中登录了至少两个用户账户,则存在至少两个客户端。若存在至少两个客户端,则通过启动程序将启动参数传递给客户端之前,还包括:
a)接收用于从展示的各个客户端中选择一个客户端的选择信号,确定选择信号指示的客户端;或,
b)若启动参数中包括用于标识客户端的标识信息,则确定标识信息指示的客户端。
由于存在至少两个客户端,因此,启动程序需要从至少两个客户端中确定需要启动功能的客户端。具体地,启动程序可以将预先设置的默认的客户端确定为启动功能的客户端;或,可以对终端中的各个客户端进行展示,以便用户从展示的各个客户端中选择一个客户端,启动程序根据用户选择客户端时触发的选择信号确定启动功能的客户端,其中,展示的客户端可以处于关闭状态,也可以处于启动状态;或,启动参数中可以携带客户端的标识信息,则启动程序可以根据标识信息确定出启动功能的客户端。假设需要启动的功能是频道且启动参数是pd-[sid=123]-uid=123456,则启动参数用于指示通过登录了用户账号123456的客户端启动频道号是123的频道。
本实施例中,若客户端可以识别启动参数,则启动程序可以直接将启动参数发送给客户端;若客户端不能识别启动参数,则启动程序还需要将启动参数转换为被客户端识别的启动参数。具体地,通过启动程序将启动参数传递给客户端,包括:
a)通过启动程序将启动参数转换为预定格式的启动参数,该预定格式是客户端能够识别的格式;
b)通过启动程序将预定格式的启动参数传递给客户端。
其中,启动程序可以获取能够被客户端识别的预定格式,并将启动参数转换为预定格式的启动参数,将预定格式的启动参数传递给客户端。比如,启动参数是join:room_id=10,客户端能够识别的预定格式是pd-[sid=xxx],则启动程序可以将启动参数转换为pd-[sid=10],并将pd-[sid=10]传递给客户端。
步骤204,通过客户端根据启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能。
若客户端可以识别接收到的启动参数,则在至少一项功能中确定该启动参数所指示的功能,并启动该功能。若客户端不能识别接收到的启动参数,即启动程序未转换启动参数,则客户端还需要将启动参数转换为客户端识别的启动参数,再在至少一项功能中确定该启动参数所指示的功能,并启动该功能。其中,转换方法详见步骤203中的描述,此处不赘述。
需要补充说明的是,若需要在终端中卸载包括客户端和与该客户端对应的启动程序的应用程序,则在运行卸载程序来卸载应用程序时,卸载程序可以调用启动程序,启动程序可以在操作系统的注册表中注销协议头,并撤销注册启动程序为用于处理协议头对应的自定义URL协议的程序的操作,即删除注册表中注册的协议头和启动程序的路径,以节省操作系统的存储空间。具体地,在操作系统中将启动程序注册为用于处理协议头所对应的自定义URL协议的程序之后,还包括:
在操作系统中注销协议头;
撤销在操作系统中将启动程序注册为用于处理协议头对应的自定义URL协议的程序的操作。
进一步地,若在终端中安装了至少两个应用程序且每一个应用程序都包括客户端和启动程序,则可以将最近安装的应用程序所包括的启动程序设置为用于处理协议头对应的自定义URL协议的程序。若该启动程序失效了,则还可以将注册表中注册的该启动程序替换为其他有效的启动程序。
在实际使用过程中,由于每一个启动程序都可以识别与该启动程序属于同一个应用程序的各个客户端和与该启动程序属于不同应用程序的各个客户端,因此,无论操作系统将启动参数发送给哪一个启动程序,启动程序都可以将启动参数传递给任意一个客户端。
综上所述,本发明实施例提供的功能启动方法,通过启动程序接收操作系统从预定链接中提取的启动参数,预定链接包括协议头和启动参数;启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;通过启动程序将启动参数传递给客户端;通过客户端根据启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能,可以根据预定链接包括的启动参数直接启动功能,解决了用户根据功能介绍信息启动功能需要跳转较多界面造成的大大降低功能启动效率的问题,达到了提高功能启动效率的效果。另外,通过在操作系统中注销协议头;撤销在操作系统中将启动程序注册为用于处理协议头对应的自定义URL协议的程序的操作,可以达到节省操作系统的存储空间的效果。
请参考图3,其示出了本发明一个实施例提供的功能启动装置的结构框架图,该功能启动装置可以应用于终端中,该终端包括客户端和与客户端对应的启动程序。该功能启动装置,包括:
参数接收模块301,用于通过启动程序接收操作系统从预定链接中提取的启动参数,预定链接包括协议头和启动参数;启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;
参数传递模块302,用于通过启动程序将参数接收模块301接收到的启动参数传递给客户端;
功能启动模块303,用于通过客户端根据参数传递模块302传递的启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能。
综上所述,本发明实施例提供的功能启动装置,通过启动程序接收操作系统从预定链接中提取的启动参数,预定链接包括协议头和启动参数;启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;通过启动程序将启动参数传递给客户端;通过客户端根据启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能,可以根据预定链接包括的启动参数直接启动功能,解决了用户根据功能介绍信息启动功能需要跳转较多界面造成的大大降低功能启动效率的问题,达到了提高功能启动效率的效果。
请参考图4,其示出了本发明再一实施例提供的功能启动装置的结构框架图,该功能启动装置可以应用于终端中,该终端包括客户端和与客户端对应的启动程序。该功能启动装置,包括:参数接收模块301、参数传递模块302和功能启动模块303。
参数接收模块301,用于通过启动程序接收操作系统从预定链接中提取的启动参数,预定链接包括协议头和启动参数;启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;
参数传递模块302,用于通过启动程序将参数接收模块301接收到的启动参数传递给客户端;
功能启动模块303,用于通过客户端根据参数传递模块302传递的启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能。
可选的,该装置还包括:
协议注册模块304,用于参数接收模块301通过启动程序接收操作系统从预定链接中提取的启动参数之前,在操作系统中注册协议头;
程序注册模块305,用于在操作系统中将启动程序注册为用于处理协议注册模块304注册的协议头所对应的自定义URL协议的程序。
可选的,参数传递模块302,包括:
参数转换单元3021,用于通过启动程序将启动参数转换为预定格式的启动参数,预定格式是客户端能够识别的格式;
参数传递单元3022,用于通过启动程序将参数转换单元3021转换后的预定格式的启动参数传递给客户端。
可选的,该装置还包括:
协议注销模块306,用于程序注册模块305在操作系统中将启动程序注册为用于处理协议头所对应的自定义URL协议的程序之后,在操作系统中注销协议头;
注册撤销模块307,用于撤销在操作系统中将启动程序注册为用于处理协议头对应的自定义URL协议的程序的操作。
可选的,若存在至少两个客户端,则该装置还包括:
第一确定模块308,用于参数传递模块302通过启动程序将启动参数传递给客户端之前,接收用于从展示的各个客户端中选择一个客户端的选择信号,确定选择信号指示的客户端;或,
第二确定模块309,用于参数传递模块302通过启动程序将启动参数传递给客户端之前,若启动参数中包括用于标识客户端的标识信息,则确定标识信息指示的客户端。
可选的,该装置还包括:
程序启动模块310,用于参数传递模块302通过启动程序将启动参数传递给客户端之前,若客户端处于关闭状态,则通过启动程序启动客户端。
综上所述,本发明实施例提供的功能启动装置,通过启动程序接收操作系统从预定链接中提取的启动参数,预定链接包括协议头和启动参数;启动参数是操作系统在预定链接被触发后,查找到用于处理预定链接中的协议头所对应的自定义URL协议的程序是启动程序后,发送给启动程序的;通过启动程序将启动参数传递给客户端;通过客户端根据启动参数启动客户端提供的至少一项功能中与启动参数所对应的功能,可以根据预定链接包括的启动参数直接启动功能,解决了用户根据功能介绍信息启动功能需要跳转较多界面造成的大大降低功能启动效率的问题,达到了提高功能启动效率的效果。另外,通过在操作系统中注销协议头;撤销在操作系统中将启动程序注册为用于处理协议头对应的自定义URL协议的程序的操作,可以达到节省操作系统的存储空间的效果。
需要说明的是:上述实施例提供的功能启动装置在进行功能启动时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将功能启动装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的功能启动装置与功能启动方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。