具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明一实施例提供的一种在语音对话平台加载控件的方法的流程图,包括如下步骤:
S11:响应于开发者上传的Html5控件,调用数据交换接口,提取Html5控件的程序代码;
S12:调用语音对话框架,试运行所述Html5控件的程序代码,若试运行成功,将所述Html5控件载入所述语音对话平台的语音对话框架中,以生成Html5控件主程序;
S13:根据所述Html5控件主程序中控件的类型属性值,调用内置控件库中与所述控件的类型属性值相对应的内置控件,以达到在所述语音对话平台中创建/更新Html5控件。
在本实施方式中,该方法用于在语音对话平台加载控件,其中,开放平台是指软件系统通过公开其应用程序编程接口或函数来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API(Open Application Programming Interface,开放应用程序编程接口),提供开放API的平台本身就被称为开放平台。
例如可以根据所开放API的功能,对各开放平台的类别进行划分,如以语音功能的API为主,开发语音控件小程序的平台划分为语音对话平台。现阶段,语音控件小程序有很多,例如智能家居控制、实时翻译、娱乐游戏。但是还是很难满足形形色色使用者的需求。所以将开发模式进行转变,让开发者针对于相应使用者自行创建独特的控件小程序。
通过使语音对话平台兼容指定的开发语言,即可使开发者使用所述兼容的开发语言开发相应的控件小程序运行在所述语音对话平台中。例如,兼容Html5技术,其中Html5是包括HTML(HyperText Markup Language,超文本标记语言)、CSS(Cascading StyleSheets,层叠样式表)、Javascript在内的一套技术组合。其提供免插件的音视频、图像动画、本体存储以及更多酷炫而且重要的功能,并使这些应用标准化和开放化,从而使互联网也能够轻松实现类似桌面的应用体验。其最主要的优势在于它适用于众多平台,可以实现跨平台运行,从PC浏览器到手机、平板电脑,甚至是智能电视。只要设备中的浏览器支持Html5技术,Html5游戏、Html5控件、应用等就可以在该平台直接运行。
对于步骤S11,开发者根据语音对话平台所兼容的Html5技术,开发了相应的Html5控件,将所述Html5控件上传至语音对话平台。上传后,所述语音对话平台响应于开发者上传的Html5控件数据包,调用数据交换接口,接收所述Html5控件数据包,在收到所述Html5控件数据包后,对其进行解压,解压后,提取所述Html5控件的程序代码。
对于步骤S12,语音对话平台调用其内部的语音对话框架,对所述步骤S11提取的Html5控件的程序代码进行试运行。如果运行成功,则将所述Html5控件中的程序代码载入语音对话框架中,通过所述程序代码与语音对话框架进行结合,生成Html5控件主程序。
对于步骤S13,查询所述Html5控件主程序中控件的类型属性值,其类型属性值一般为代码存储在Html5控件主程序中,例如,Html5控件主程序中的这段代码:
其中,通过查询“widgetType”所对应的属性值,例如上述代码中属性值为图文卡片,则调用与所述图文卡片相对应的内置控件,通过所述相对应的内置控件的支持,达到在语音对话平台创建/更新Html5控件(当在所述语音对话平台中相应的程序,首次加载Html5控件时为创建Html5控件,在已有Html5控件的程序中加载Html5控件为更新Html5控件)。
通过该实施方法可以看出,本实施方法提供了一种在语音对话平台加载控件的方法,通过将语音对话平台与开发者较为熟悉的Html5技术进行兼容,由于本领域开发人员会在开发过程中与Html5技术中有一些接触,使得开发者能够在Html5技术上相对较容易上手,快速投入开发之中,从而减少了开发者的学习成本。同时,由于Html5的控件小程序可以运行在浏览器和Android/IOS的webview中,达到了在其他兼容Html5技术的开放平台中加载Html5控件,从而达到跨平台使用。
作为一种实施方式,在本实施例中,所述试运行所述Html5控件的程序代码包括:
若试运行错误,在所述语音对话平台生成运行错误对话框,在所述对话框内显示运行错误类型。
在本实施方式中,语音对话平台在接收到开发者上传的Html5控件数据包进行解压,解压后,对其Html5控件代码进行编译试运行。如果试运行失败,在语音对话平台生成运行错误对话框,在所述对话框内报出错误类型。根据所述错误类型,供开发者了解到所上传的Html5控件的错误在哪,以便于修改。其中,错误类型的提示包括:上传的资源内容有误,无法正常读取、解压失败、网络异常、无法连接至服务器等。
通过该实施方法可以看出,在开发者上传了语音对话平台无法运行的Html5控件时,语音对话平台向开发者提示Html5控件是由于哪种类型的错误导致平台无法运行,通过对开发者给予错误的提示,从而帮助开发者定位Html5控件中存在的问题部分,从而提高开发者的开发效率。
作为一种实施方式,在本实施例中,所述控件类型包括:皮肤界面类型以及功能实现类型。
在本实施方式中,通过查询Html5控件中的类型属性值可以查询到所述Html5控件相对应的控件类型,其中控件类型包括皮肤界面类型的控件以及功能实现类型的控件。
通过该实施方法可以看出,不同类型的控件可以为开发者提供更多的开发方向选择,从而开发出功能更多、皮肤类型更独特的Html5控件。
作为一种实施方式,在本实施例中,所述皮肤界面类型包括:全局皮肤界面、局部皮肤界面;
当所述Html5控件主程序的控件类型为全局皮肤界面时,利用Html5控件的UI配置加载所述Html5控件的全局皮肤;
当所述Html5控件主程序的空间类型为局部皮肤界面时,利用Html5控件的UI配置加载所述Html5控件的局部皮肤,所述Html5控件的局部外的皮肤使用语音对话平台预设的UI配置加载。
在本实施方式中,皮肤的类型可为全局皮肤界面以及局部皮肤界面,例如Html5控件的功能为音乐播放类型的控件,其可以展示歌手、歌曲名,并设有播放、暂停按钮。
当所述Html5控件主程序的控件类型为全局皮肤界面时,语音对话平台会按照所述Html5控件中的UI配置加载所述Html5控件的全局皮肤。所述歌手、歌曲名、播放按钮、暂停按钮部分都会按照所述Html5控件中的UI配置进行加载(字体颜色、大小、排版样式等)。
而当所述Html5控件主程序的控件类型为局部皮肤界面时,语音对话平台会按照所述Html5控件中的UI配置加载所述Html5控件的局部皮肤。例如局部皮肤为按钮局部皮肤,所述Html5控件中的播放按钮、暂停按钮就会按照所述Html5控件的UI配置进行加载,而歌手、歌曲名会按照语音对话平台预设的UI配置进行加载。
通过该实施方法可以看出,语音对话平台针对于不同的皮肤类型,有不同的加载方法。通过为开发者提供了不同的皮肤布局方法,为开发者在编写Html5控件时提供更多的选择,将控件皮肤模块化,便于开发者的开发。
作为一种实施方式,在本实施例中,所述功能实现类型包括:图文卡片、内嵌网页、媒体播放;
当所述Html5控件主程序中的控件类型至少包括图文卡片时,调用功能操作接口,为所述至少包括图文卡片类型的Html5控件主程序提供控制页面的功能;
当所述Html5控件主程序中的控件类型至少包括内嵌网页时,调用网页插入接口,为所述至少包括内嵌网页类型的Html5控件主程序提供第三方网页插入展示功能;
当所述Html5控件主程序中的控件类型至少包括媒体播放时,调用媒体控制接口,为所述至少包括媒体播放类型的Html5控件主程序提供音频/视频播放的功能。
在本实施方式中,功能实现类型包括,图文卡片、内嵌网页以及媒体播放。针对于不同的功能实现类型,来设定相应功能的Html5控件。
例如百科功能的Html5控件,用户向百科功能的Html5控件传递了一个名词,这类功能的控件需要接收名词信息,通过接收到的名词信息,向配设好的百科API(ApplicationProgramming Interface,应用程序编程接口)发送名词信息,之后再接收API接口处理后反馈的与所述名词相对应的百科信息,这些数据的交互功能,都用到了数据交互接口,通过调用数据交互接口,实现数据传递的功能(基本带有数据交互的功能的Html5控件都需要使用到数据交互接口)。同时百科功能的Html5控件,在展示百科信息的同时又附带有“收藏”、“分享”等功能按键,通过点击“收藏”或“分享”按钮即可弹出“收藏”、“分享”的操作界面。这些功能也用到了功能操作接口,为所述Html5控件提供了控制页面的功能。
又如查询一周天气的Html5控件,这类Html5控件比较简单,在确定出查询哪里的天气后,直接向配置好的API获取一周的天气信息,将获取到的一周天气信息通过第三方网页,直接插入所述Html5控件中,通过调用网页接口,为其所述Html5控件提供了第三方网页展示的功能。
又如讲故事功能的Html5控件,当用户选定播放音频后,会在控件中显示媒体播放器,其媒体播放器通常由带有播放暂停按钮的音频/视频播放器构成,并在媒体播放器的旁边显示当前播放视频/音频的名称。其播放功能,就是通过调用媒体控制接口,为所述Html5控件提供了音频/视频播放的功能。
通过该实施方法可以看出,语音对话平台针对于不同的功能实现类型,有着内置接口的辅助。通过为开发者提供各种功能的接口,来实现开发者所编写的Html5控件,为开发者提供了各种功能的实现,不必让开发者自行查找相应的接口,提高了开发者的开发效率。
作为一种实施方式,在本实施例中,所述方法还包括:
响应于Html5控件主程序的加载,在所述语音对话平台生成预览界面,所述预览界面用于展示所述Html5控件主程序的加载效果。
在本实施方式中,通过响应于Html5控件主程序的加载,在所述语音对话平台生成Html5控件主程序的展示界面,所述展示界面用于向开发者展示所述Html5控件的加载效果,通过查看加载效果,为开发者带来所述Html5控件最直观的效果信息。根据所述效果信息,为开发者对所述Html5控件进行参考,从而帮助开发者进行调整,以达到Html5控件能够展示最佳效果。
通过该实施方式可以看出,为开发者提供展示界面可以给予开发者Html5控件最直观的展示信息,为开发者带来参考,以便于开发者根据相应的要求进行修改。从而提高开发者的开发效率以及Html5控件的质量。
如图2所示为本发明一实施例提供的一种在语音对话平台加载控件的系统的结构示意图,本实施例的技术方案可适用于对设备的在语音对话平台加载控件的方法,该系统可执行上述任意实施例所述的在语音对话平台加载控件的方法,并配置在终端中。
本实施例提供的一种在语音对话平台加载控件的系统包括:控件代码提取程序模块11,主程序生成程序模块12和控件加载程序模块13。
其中,控件代码提取程序模块11用于响应于开发者上传的Html5控件,调用数据交换接口,提取Html5控件的程序代码;主程序生成程序模块12用于调用语音对话框架,试运行所述Html5控件的程序代码,若试运行成功,将所述Html5控件载入所述语音对话平台的语音对话框架中,以生成Html5控件主程序;控件加载程序模块13用于根据所述Html5控件主程序中控件的类型属性值,调用内置控件库中与所述控件的类型属性值相对应的内置控件,以达到在所述语音对话平台中创建/更新Html5控件。
进一步地,所述试运行所述Html5控件的程序代码包括:
若试运行错误,在所述语音对话平台生成运行错误对话框,在所述对话框内显示运行错误类型。
进一步地,所述控件类型包括:皮肤界面类型以及功能实现类型。
进一步地,所述皮肤界面类型包括:全局皮肤界面、局部皮肤界面;
当所述Html5控件主程序的控件类型为全局皮肤界面时,利用Html5控件的UI配置加载所述Html5控件的全局皮肤;
当所述Html5控件主程序的空间类型为局部皮肤界面时,利用Html5控件的UI配置加载所述Html5控件的局部皮肤,所述Html5控件的局部外的皮肤使用语音对话平台预设的UI配置加载。
进一步地,所述功能实现类型包括:图文卡片、内嵌网页、媒体播放;
当所述Html5控件主程序中的控件类型至少包括图文卡片时,调用功能操作接口,为所述至少包括图文卡片类型的Html5控件主程序提供控制页面的功能;
当所述Html5控件主程序中的控件类型至少包括内嵌网页时,调用网页插入接口,为所述至少包括内嵌网页类型的Html5控件主程序提供第三方网页插入展示功能;
当所述Html5控件主程序中的控件类型至少包括媒体播放时,调用媒体控制接口,为所述至少包括媒体播放类型的Html5控件主程序提供音频/视频播放的功能。
进一步地,所述系统还包括:
界面预览程序模块,用于响应于Html5控件主程序的加载,在所述语音对话平台生成预览界面,所述预览界面用于展示所述Html5控件主程序的加载效果。
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的在语音对话平台加载控件的方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
响应于开发者上传的Html5控件,调用数据交换接口,提取Html5控件的程序代码;
调用语音对话框架,试运行所述Html5控件的程序代码,若试运行成功,将所述Html5控件载入所述语音对话平台的语音对话框架中,以生成Html5控件主程序;
根据所述Html5控件主程序中控件的类型属性值,调用内置控件库中与所述控件的类型属性值相对应的内置控件,以达到在所述语音对话平台中创建/更新Html5控件。
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的测试软件的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的在语音对话平台加载控件的方法。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据测试软件的装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至测试软件的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的在语音对话平台加载控件的方法。
本申请实施例的客户端以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有浏览器的电子装置。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。