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

一种网页应用的启动方法及显示设备

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


一种网页应用的启动方法及显示设备

技术领域

本申请涉及互联网技术领域,尤其涉及一种网页应用的启动方法及显示设备。

背景技术

随着显示设备的快速发展,显示设备的功能将越来越丰富,性能也越来越强大,目前,显示设备包括智能电视、智能机顶盒、智能盒子,以及带有智能显示屏幕的产品等。为实现网络电视功能,显示设备通常通过VIDAA账号与VIDAA服务器建立连接,用户可通过VIDAA服务器在显示设备上免费观看网络电影、电视剧,以及体验不同应用程序等。

在用户启动显示设备内的应用程序时,通常采用浏览器和超文本传输协议(HTTP,Hypertext Transfer Protocol)的服务器实现,例如,浏览器采用HTTP协议启动网页应用时,需要HTTP协议先将网页应用的访问URL下载,然后再进行访问。但是,采用先下载后访问的方式启动网页应用,将导致网页应用启动慢,加载性能低。

发明内容

本申请提供了一种网页应用的启动方法及显示设备,以解决现有的网页应用在启动时加载较慢的问题。

第一方面,本申请提供了一种显示设备,包括:

显示器,被配置为呈现指定网页应用的启动页面;

与所述显示器连接的控制器,所述控制器被配置为:

响应于指定网页应用的启动请求,获取所述指定网页应用的应用URL、索引配置文件和应用配置文件;

在所述应用URL为目标协议URL时,解析所述应用URL,得到所述指定网页应用对应的指定启动动作、APPID和APP参数;

遍历所述索引配置文件,查找与所述APPID对应的APPURL,所述APPURL为所述指定网页应用在显示设备中存储的真实访问路径;

解析所述应用配置文件,确定与所述指定启动动作对应的所述指定网页应用的指定访问页面信息;

将所述APP参数、APPURL和指定访问页面信息封装成File协议URL,以及,基于所述File协议URL启动所述指定网页应用。

本申请一些实施例中,所述控制器在执行所述获取所述指定网页应用的应用URL,被进一步配置为:

获取存储有多个网页应用的应用代码包的应用安装信息文件;

判断所述应用安装信息文件中是否存在所述指定网页应用在安装时对应的应用URL;

如果不存在,则解析所述指定网页应用的应用代码包,得到应用更新信息;

将所述应用更新信息添加到所述应用安装信息文件中,基于更新后的应用安装信息文件,读取所述指定网页应用的应用URL。

本申请一些实施例中,所述控制器在执行所述获取所述指定网页应用的索引配置文件,被进一步配置为:

获取所述指定网页应用的配置索引表;

如果所述配置索引表不为空,则将所述配置索引表中的配置索引信息进行分割,得到多个结构体;

将其中一个所述结构体作为key值,将其余结构体作为value值,建立key-value映射关系;

将所述key-value映射关系存储至所述配置索引表中,将存储有所述key-value映射关系的所述配置索引表作为指定网页应用的索引配置文件。

本申请一些实施例中,所述控制器在执行所述获取所述指定网页应用的索引配置文件,被进一步配置为:

如果所述配置索引表为空,则判断当前索引配置文件中的配置索引信息中是否存在指定网页应用的APPURL对应的目标字段;

如果不存在所述目标字段,则获取所述指定网页应用的应用配置文件;

将所述应用配置文件中的应用配置信息存储至所述配置索引表中,将存储有所述应用配置信息的配置索引表作为指定网页应用的索引配置文件;

如果存在所述目标字段,则获取所述指定网页应用的应用代码包;

解析所述应用代码包,确定所述指定网页应用的字段更新信息;

将所述字段更新信息存储至所述配置索引表中,将存储有所述字段更新信息的配置索引表作为指定网页应用的索引配置文件。

本申请一些实施例中,所述控制器在执行所述遍历所述索引配置文件,查找与所述APPID对应的APPURL,被进一步配置为:

获取所述索引配置文件对应的key-value映射关系;

遍历所述key-value映射关系,将所述APPID作为key值进行查找,得到与所述APPID对应的APPURL,所述APPURL为所述key-value映射关系中的其中一个value值。

本申请一些实施例中,所述指定启动动作为launch;以及,所述控制器在执行所述解析所述应用配置文件,确定与所述指定启动动作对应的所述指定网页应用的指定访问页面信息,被进一步配置为:

解析所述应用配置文件,得到所述指定网页应用对应的应用配置信息;

获取所述应用配置信息中与所述launch对应的页面信息,将所述launch对应的页面信息作为所述指定网页应用的指定访问页面信息。

本申请一些实施例中,所述控制器在执行所述将所述APP参数、APPURL和指定访问页面信息封装成File协议URL,被进一步配置为:

获取所述launch对应的页面信息中的index字段信息;

将所述APP参数、APPURL和index字段信息封装成File协议URL。

本申请一些实施例中,所述指定启动动作为deeplink;以及,所述控制器在执行所述解析所述应用配置文件,确定与所述指定启动动作对应的所述指定网页应用的指定访问页面信息,被进一步配置为:

解析所述应用配置文件,得到所述指定网页应用对应的应用配置信息;

获取所述应用配置信息中与所述deeplink对应的页面信息,将所述deeplink对应的页面信息作为所述指定网页应用的指定访问页面信息。

本申请一些实施例中,所述控制器在执行所述将所述APP参数、APPURL和指定访问页面信息封装成File协议URL,被进一步配置为:

获取所述deeplink对应的页面信息中的deeplink字段信息;

将所述APP参数、APPURL和deeplink字段信息封装成File协议URL。

第二方面,本申请还提供了一种网页应用的启动方法,所述方法包括:

响应于指定网页应用的启动请求,获取所述指定网页应用的应用URL、索引配置文件和应用配置文件;

在所述应用URL为目标协议URL时,解析所述应用URL,得到所述指定网页应用对应的指定启动动作、APPID和APP参数;

遍历所述索引配置文件,查找与所述APPID对应的APPURL,所述APPURL为所述指定网页应用在显示设备中存储的真实访问路径;

解析所述应用配置文件,确定与所述指定启动动作对应的所述指定网页应用的指定访问页面信息;

将所述APP参数、APPURL和指定访问页面信息封装成File协议URL,以及,基于所述File协议URL启动所述指定网页应用。

第三方面,本申请还提供了一种存储介质,该计算机存储介质可存储有程序,该程序执行时可实现包括本申请提供的网页应用的启动方法各实施例中的部分或全部步骤。

由以上技术方案可知,本发明实施例提供的一种网页应用的启动方法及显示设备,在启动指定网页应用时,如果对应的应用URL为目标协议URL时,进行解析,得到指定启动动作、APPID和APP参数;遍历索引配置文件,查找与APPID对应的APPURL,解析应用配置文件,确定与指定启动动作对应的指定访问页面信息;将APP参数、APPURL和指定访问页面信息封装成File协议URL,基于File协议URL启动指定网页应用。可见,本发明实施例提供的方法及显示设备,将目标协议URL映射成File协议URL,提供统一接口格式,可直接启动指定网页应用,提高网页应用的加载性能,提高加载体验。

附图说明

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

图1示出了根据一些实施例的显示设备的使用场景;

图2示出了根据一些实施例的控制装置100的硬件配置框图;

图3示出了根据一些实施例的显示设备200的硬件配置框图;

图4示出了根据一些实施例的显示设备中软件配置图;

图5示出了根据一些实施例的网页应用的启动方法的数据流图;

图6示出了根据一些实施例的网页应用的启动方法的流程图;

图7示出了根据一些实施例的安装APP时更新应用安装信息文件的数据流图;

图8示出了根据一些实施例的获取指定网页应用的应用URL的方法流程图;

图9示出了根据一些实施例的卸载APP时更新应用安装信息文件的数据流图;

图10示出了根据一些实施例的获取索引配置文件的数据流图;

图11示出了根据一些实施例的获取索引配置文件的方法流程图;

图12示出了根据一些实施例的安装APP时更新索引配置文件的数据流图;

图13示出了根据一些实施例的卸载APP时更新索引配置文件的数据流图。

具体实施方式

为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。

需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。

本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。

术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。

术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。

图1示出了根据一些实施例的显示设备的使用场景。如图1所示,显示设备200还与服务器400进行数据通信,用户可通过智能设备300或控制装置100操作显示设备200。

在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式中的至少一种,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等至少一种输入用户指令,来控制显示设备200。

在一些实施例中,智能设备300可以包括移动终端、平板电脑、计算机、笔记本电脑,AR/VR设备等中的任意一种。

在一些实施例中,也可以使用智能设备300以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。

在一些实施例中,也可以使用智能设备300和显示设备进行数据的通信。

在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制装置来接收用户的语音指令控制。

在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。

在一些实施例中,一个步骤执行主体执行的软件步骤可以随需求迁移到与之进行数据通信的另一步骤执行主体上进行执行。示例性的,服务器执行的软件步骤可以随需求迁移到与之数据通信的显示设备上执行,反之亦然。

图2示出了根据一些实施例的控制装置100的硬件配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。

在一些实施例中,通信接口130用于和外部通信,包含WIFI芯片,蓝牙模块,NFC或可替代模块中的至少一种。

在一些实施例中,用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。

图3示出了根据一些实施例的显示设备200的硬件配置框图。参见图3,在一些实施例中,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。

在一些实施例中控制器包括中央处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。

在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面等。

在一些实施例中,显示器260可为液晶显示器、OLED显示器、以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。

在一些实施例中,调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。

在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与控制装置100或服务器400建立控制信号和数据信号的发送和接收。

在一些实施例中,检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。

在一些实施例中,外部装置接口240可以包括但不限于如下:高清多媒体接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。

在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。

在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。

在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接、图标或其他可操作的控件。与所选择的对象有关操作有:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。

在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM Random AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。

CPU处理器,用于执行存储在存储器中操作系统和应用程序指令,以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。CPU处理器,可以包括多个处理器。如,包括一个主处理器以及一个或多个子处理器。

在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等中的至少一种。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。

在一些实施例中,视频处理器,用于将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等视频处理中的至少一种,可得到直接可显示设备200上显示或播放的信号。

在一些实施例中,视频处理器,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等中的至少一种。其中,解复用模块,用于对输入音视频数据流进行解复用处理。视频解码模块,用于对解复用后的视频信号进行处理,包括解码和缩放处理等。图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。帧率转换模块,用于对转换输入视频帧率。显示格式化模块,用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。

在一些实施例中,音频处理器,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理中的至少一种,得到可以在扬声器中播放的声音信号。

在一些实施例中,用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。

在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素中的至少一种。

在一些实施例中,用户接口280,为可用于接收控制输入的接口(如:显示设备本体上的实体按键,或其他等)。

在一些实施例中,显示设备的系统可以包括内核(Kernel)、命令解析器(shell)、文件系统和应用程序。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并使用系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(IPC)。内核启动后,再加载Shell和用户应用程序。应用程序在启动后被编译成机器码,形成一个进程。

图4示出了根据一些实施例的显示设备中软件配置图。如图4所示,将显示设备的系统分为三层,从上至下分别为应用层、中间件层和硬件层。

应用层主要包含电视上的常用应用,以及应用框架(Application Framework),其中,常用应用主要是基于浏览器Browser开发的应用,例如:HTML5 APPs;以及原生应用(Native APPs);

应用框架(Application Framework)是一个完整的程序模型,具备标准应用软件所需的一切基本功能,例如:文件存取、资料交换...,以及这些功能的使用接口(工具栏、状态列、菜单、对话框)。

原生应用(Native APPs)可以支持在线或离线,消息推送或本地资源访问。

中间件层包括各种电视协议、多媒体协议以及系统组件等中间件。中间件可以使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

硬件层主要包括HAL接口、硬件以及驱动,其中,HAL接口为所有电视芯片对接的统一接口,具体逻辑由各个芯片来实现。驱动主要包含:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。

在一些实施例中,显示设备连接到VIDAA服务器,即安装有VIDAA系统以实现网络电视功能。采用VIDAA系统的显示设备中安装有多种第三方应用程序,VIDAA的第三方应用程序的管理均基于URL来实现。

由于目前显示设备启动某个第三方应用程序时,如启动网页应用时,需利用HTTP协议将启动网页应用的URL进行下载,再进行启动。该过程较为繁琐,导致网页应用启动慢,网页应用加载性能低。

因此,为了针对上述问题,本发明实施例提供一种显示设备,基于封装的File协议请求URL,以启动网页应用,可在原来运行在第三方云端的前端代码,安全的加载在终端上,以统一Scheme的形式基于File协议进行调用,即保证启动网页应用时的加载性能,又能提升加载体验。同时,基于统一的Scheme机制,通过调用统一接口形式启动网页应用,无需暴露技术细节,屏蔽系统相干性,提升安全性。

图5示出了根据一些实施例的网页应用的启动方法的数据流图;图6示出了根据一些实施例的网页应用的启动方法的流程图。本发明实施例提供的一种显示设备,包括:显示器和控制器,显示器被配置为呈现指定网页应用的启动页面;控制器与显示器连接,在执行图5和图6所示的网页应用的启动方法,控制器被配置为执行下述步骤:

S1、响应于指定网页应用的启动请求,获取指定网页应用的应用URL、索引配置文件和应用配置文件。

用户在启动显示设备中配置的应用程序时,显示设备利用浏览器启动该应用程序得到网页应用。启动时,用户可通过触发遥控器上的按键,产生启动请求,以启动指定网页应用。

为提高启动速度,将采用目标协议的应用URL替换为采用File协议的URL,需先获取指定网页应用的应用URL、索引配置文件和应用配置文件。应用URL是指采用目标协议的URL,在VIDAA系统中,应用URL为采用VIDAA协议的URL,即目标协议可为VIDAA协议。索引配置文件为Pkgapps类型的应用配置文件,统一保存在数据库文件/APPS/pkgapps/mapindex.txt中,由浏览器进行统一控制与读取,主要用于启动链接与真实URL的映射,以及实现Deeplinking功能。应用配置文件为应用代码包中的manifest.json文件,其中存储有与指定网页应用相关的应用配置信息,包括版本号、启动目标URL、图标等。

通常每个网页应用的应用URL均存储在应用安装信息文件(AppInfo.json)中,应用安装信息文件中包括多个网页应用的应用代码包,应用代码包为对应网页应用的安装包。

应用URL中scheme部分不会使用File协议,在一些实施例中,模块选择自定义Scheme,隐藏细节,将路径管理与依赖保留在模块内部,实现UI/云端平台无关。自定义Scheme的内容至少包括如下1-6的内容:

“1、Scheme字段:为自定义Scheme,默认为VIDAA,webengine会识别此Scheme进行处理。

2、Host字段:为应用类型,第三方应用默认为webapps,即网页应用。

3、Port字段:用于特殊管理,第三方应用默认为空,如在debug模式下使用特定端口启动应用,可以打开log/启用实验特性。

4、Action字段:包括(1)Launch:启动应用;(2)Deeplink:深链接,等。

5、ID字段:为APPID。

6、parm字段:为APP参数。”

在启动指定网页应用时,会将该应用对应的相关信息均存入应用安装信息文件AppInfo.json中。

例如,指定网页应用为shahid应用时,通过打开vidaa://apps/launch/12345,启动shahid应用。通过打开vidaa://apps/launch/12345/?id=23456,启动shahid应用的23456媒资。

基于上述启动链接,将下述与指定网页应用相关的信息存入AppInfo.json中。

可见,在启动网页应用或者安装网页应用时,与其相关的信息均会存储至应用安装信息文件AppInfo.json中。因此,在需要使用应用URL时,可在应用安装信息文件中获取指定网页应用对应的应用URL,即"vidaa://apps/launch/12345"。

在一些实施例中,网页应用在安装或卸载时,网页应用的相关信息会发生变化,即导致应用安装信息文件中存储的对应信息均会发生更新,因此,需在安装APP或卸载APP时对用于安装信息文件AppInfo.json进行更新。在获取指定网页应用的应用URL时,需基于更新后的应用安装信息文件中存储的信息,以保证数据获取的准确性。

图7示出了根据一些实施例的安装APP时更新应用安装信息文件的数据流图;图8示出了根据一些实施例的获取指定网页应用的应用URL的方法流程图。在一些实施例中,在基于安装APP时更新应用安装信息文件AppInfo.json获取应用URL的过程中,参见图7和图8,控制器在执行获取指定网页应用的应用URL,被进一步配置为执行下述步骤:

S111、获取存储有多个网页应用的应用代码包的应用安装信息文件。

S112、判断应用安装信息文件中是否存在指定网页应用在安装时对应的应用URL。

S113、如果不存在,则解析指定网页应用的应用代码包,得到应用更新信息。

S114、将应用更新信息添加到应用安装信息文件中,基于更新后的应用安装信息文件,读取指定网页应用的应用URL。

控制器获取显示设备的VIDAA系统中存储的应用安装信息文件,应用安装信息文件中包括多个网页应用的应用代码包。在安装APP时,解析应用安装信息文件的文件信息,判断应用安装信息文件是否需要更新,即判断应用安装信息文件中是否存在指定网页应用在安装时对应的应用URL。

如果应用安装信息文件中不存在要安装应用的URL,则标记为需要更新。更新时,解析需要更新的应用信息,即解析指定网页应用的应用代码包,得到应用更新信息。解析时,可从应用代码包中获取索引配置文件和应用配置文件,从索引配置文件中获取到APPID、URL、启动方式等信息,从应用配置文件中获取到APPname字段等信息。将从索引配置文件和应用配置文件中获取到的信息作为应用更新信息。

将应用安装信息文件的文件内容解析成object,将应用更新信息解析为array。将array插入到整个object中,并将插入后形成的整个object转换成字符串,写进应用安装信息文件中完成更新。而后,在启动指定网页应用时,在更新后的应用安装信息文件中获取指定网页应用的应用URL。

图9示出了根据一些实施例的卸载APP时更新应用安装信息文件的数据流图。在一些实施例中,在卸载APP时更新应用安装信息文件AppInfo.json,参见图9,将AppInfo.json文件内容读取出来保存在字符串中,判断该字符串中是否包含有要卸载应用的URL,若有,标记为需要更新。解析应用安装信息文件的文件内容为object,遍历整个object,若取得的URL值为卸载应用的应用URL,则删掉该对象。将剩余信息转换成字符串,写入应用安装信息文件中,得到更新后的应用安装信息文件。若不需要更新,则不处理。

若网页应用重新安装后,即需将网页应用的相关信息再次写入应用安装信息文件,再从更新后的应用安装信息文件中获取需要启动的指定网页应用的应用URL。

在获取到指定网页应用的应用URL后,还需从指定网页应用的应用代码包中获取索引配置文件,以作为将目标协议的URL转换为File协议的URL的数据源。

图10示出了根据一些实施例的获取索引配置文件的数据流图;图11示出了根据一些实施例的获取索引配置文件的方法流程图。在一些实施例中,参见图10和图11,控制器在执行获取指定网页应用的索引配置文件,被进一步配置为执行下述步骤:

S121、获取指定网页应用的配置索引表。

S122、如果配置索引表不为空,则将配置索引表中的配置索引信息进行分割,得到多个结构体。

S123、将其中一个结构体作为key值,将其余结构体作为value值,建立key-value映射关系。

S124、将key-value映射关系存储至配置索引表中,将存储有key-value映射关系的配置索引表作为指定网页应用的索引配置文件。

某个APP在安装时,如在安装网页应用时,其安装所需的应用代码包中存储有配置索引信息,即从指定网页应用的应用代码包中获取配置索引表mapindex,配置索引表中存储有配置索引信息,内容包括但不限于以下内容:

“APPID字段:为内部id,同云端对齐,不存储在软件包中。

APPURL字段:为内部URL,真实的File地址。

Updatestatus字段:‘0’表示正常使用;‘1’表示更新过程中。

Launchcount字段:为启动次数。

Createtime字段:为创建日期。

Updatetime字段:为更新日期。

Versionname字段:为程序版本。”

将上述配置索引信息按以下格式存储到数据库文件/APPS/pkgapps/mapindex.txt文件中:APPID|APPURL|Updatestatus|Launchcount|Createtime|Updatetime|Versionname,作为配置索引表的内容,为Pkgapps类型的配置文件。

在启动指定网页应用时,判断配置索引表是否为空,如果不为空,则获取配置索引表的配置索引信息,即/APPS/pkgapps/mapindex.txt文件,将每一行的信息按照‘|’符号分割开,依次识别APPID、APPURL、Updatestatus、Launchcount、Createtime、Updatetime、Versionname信息,并分别保存在结构体中,得到多个结构体。

将其中一个结构体作为key值,将其余结构体作为value值,建立映射关系。在一些实施例中,将指定网页应用的APPID作为key,将剩余信息的结构体作为value,形成映射关系,存储到配置索引表中,将存储有key-value映射关系的配置索引表作为指定网页应用的索引配置文件,方便后续调用。

同一个网页应用对应一个映射关系,那么多个网页应用对应有多个映射关系,将多个映射关系存储到配置索引表中,得到包括多个网页应用映射关系的索引配置文件。

在一些实施例中,如果配置索引表为空,则说明配置索引表需要更新。配置索引表的更新发生在安装APP时和卸载APP时,因此,在获取指定网页应用的索引配置文件时,需基于更新后的索引配置文件。

图12示出了根据一些实施例的安装APP时更新索引配置文件的数据流图。在一些实施例中,在基于安装APP时更新索引配置文件获取索引配置文件的过程中,参见图12,控制器在执行获取指定网页应用的索引配置文件,被进一步配置为执行下述步骤:

步骤12511、如果配置索引表为空,则判断当前索引配置文件中的配置索引信息中是否存在指定网页应用的APPURL对应的目标字段。

步骤12512、如果不存在目标字段,则获取指定网页应用的应用配置文件。

步骤12513、将应用配置文件中的应用配置信息存储至配置索引表中,将存储有应用配置信息的配置索引表作为指定网页应用的索引配置文件。

步骤12514、如果存在目标字段,则获取指定网页应用的应用代码包。

步骤12515、解析应用代码包,确定指定网页应用的字段更新信息。

步骤12516、将字段更新信息存储至配置索引表中,将存储有字段更新信息的配置索引表作为指定网页应用的索引配置文件。

在配置索引表为空或者找不到要安装的APP时,标记索引配置文件为需要更新。在安装APP时,解析当前的索引配置文件得到配置索引信息,判断配置索引信息中是否存在要安装APP的APPURL前半字段,即判断当前索引配置文件中的配置索引信息中是否存在指定网页应用的APPURL对应的目标字段。如果存在,说明曾经安装过指定网页应用;如果不存在,则说明未安装过指定网页应用。

在一些实施例中,如果不存在目标字段,需要指定网页应用的相关信息更新至索引配置文件中。因此,获取指定网页应用的应用配置文件(manifest.json文件),应用配置文件可从指定网页应用的应用代码包中获取,应用配置文件中存储有应用配置信息,包括版本号、启动目标URL、图标等。将应用配置信息存储至配置索引表中,对索引配置文件进行更新,即将存储有应用配置信息的配置索引表作为指定网页应用的索引配置文件。

在一些实施例中,如果存在目标字段,则需要对索引配置文件中的APPURL字段和version(版本)字段进行更新。此时,获取指定网页应用的应用代码包,应用代码包中存储有APPID、版本号等信息,将该信息作为字段更细信息,更新索引配置文件中的APPURL字段和version字段。APPID可确定要安装的APP,并确定对应的版本号,APPURL字段更新依据和version字段更新依据均可根据应用代码包中的版本号信息获得。

图13示出了根据一些实施例的卸载APP时更新索引配置文件的数据流图。参见图13,在卸载APP时更新索引配置文件的情况下,判断索引配置文件中的配置信息中是否存在指定网页应用(卸载APP)的APPURL对应的目标字段,可为APPID和APPURL;如果存在,则删除目标字段对应的指定网页应用的配置信息,将删除配置信息后的配置表作为更新后的索引配置文件。如果不存在,则不处理,即不执行更新过程。

具体地,在卸载APP时更新时,读取索引配置文件/APPS/pkgapps/mapindex.txt,将其中的每一行信息作为一个元素存入vector数组中,若找到要卸载应用(指定网页应用)的信息(APPID和APPURL),便将该元素信息删掉,再保存更新后的索引配置文件中。

若网页应用重新安装后,即需将网页应用的相关信息再次写入索引配置文件,以更新索引配置文件,作为后序调用的数据源。

S2、在应用URL为目标协议URL时,解析应用URL,得到指定网页应用对应的指定启动动作、APPID和APP参数。

在获取到指定网页应用的应用URL后,判断应用URL是否为目标协议URL,而在VIDAA系统中,目标协议可为VIDAA协议,即在打开指定网页应用时,从AppInfo.json读取的该应用URL,判断是否为自定义vidaa://协议。如果是,则解析该应用URL,得到指定网页应用对应的指定启动动作(Action)、APPID和APP参数。如果不是目标协议URL,则不进行处理,直接启动指定网页应用即可。

在一些实施例中,基于启动动作Action,可根据用户的使用需求添加实现不同功能的Action信息,实现功能扩展。

S3、遍历索引配置文件,查找与APPID对应的APPURL,APPURL为指定网页应用在显示设备中存储的真实访问路径。

对指定网页应用的索引配置文件进行处理,遍历索引配置文件中每个网页应用的配置索引信息,基于指定网页应用的APPID,查找对应的APPURL,作为后序转换为File协议的URL的数据源。

在一些实施例中,控制器在执行遍历索引配置文件,查找与APPID对应的APPURL,被进一步配置为执行下述步骤:

步骤31、获取索引配置文件对应的key-value映射关系。

步骤32、遍历key-value映射关系,将APPID作为key值进行查找,得到与APPID对应的APPURL,APPURL为key-value映射关系中的其中一个value值。

参照前述实施例中步骤S121至S124的内容,索引配置文件中包括多个网页应用的key-value映射关系。因此,获取索引配置文件中指定网页应用对应的key-value映射关系,并将指定网页应用的APPID作为key遍历key-value映射关系,可查找到value分别为APPURL、Updatestatus、Launchcount、Createtime、Updatetime、Versionname等结构体。因此,将与APPID对应的APPURL作为指定网页应用的真实File地址。

S4、解析应用配置文件,确定与指定启动动作对应的指定网页应用的指定访问页面信息。

获取到要启动的指定网页应用的应用代码包,从应用代码包中获取到应用配置文件(manifest.json文件),解析manifest.json文件,得到包括多个字段的字符串,将该字符串与目标协议URL进行对比,即可确定出指定网页应用的指定启动动作。

目标协议URL即为前述应用URL,经过解析,从应用URL中提取到指定启动动作(Action),指定访问动作包括launch或者deeplink。在应用配置文件中获取与指定启动动作对应的页面信息作为指定访问页面信息,以作为指定网页应用的真实URL的数据源。

例如,如果目标协议URL为vidaa://apps/launch/12345,则启动“应用12345”对应的指定启动动作为launch;如果目标协议URL为vidaa://apps/deeplink/12345,则启动“应用12345”对应的指定启动动作为deeplink。

S5、将APP参数、APPURL和指定访问页面信息封装成File协议URL,以及,基于File协议URL启动指定网页应用。

在将指定网页应用的目标协议URL重新封装为File协议URL时,所依据的数据源分别为前述基于应用URL、索引配置文件和应用配置文件经过处理后得到的APP参数、APPURL和指定访问页面信息,将上述信息映射成真实的File协议URL,以启动指定网页应用,将启动页面显示在显示器中。

由于指定访问页面信息可为launch对应的页面信息,或者deeplink对应的页面信息,因此,在映射成File协议URL时,会存在两种不同的形式。

在一些实施例中,在指定启动动作为launch时,控制器在执行解析应用配置文件,确定与指定启动动作对应的指定网页应用的指定访问页面信息,被进一步配置为执行下述步骤:

步骤411、解析应用配置文件,得到指定网页应用对应的应用配置信息。

步骤412、获取应用配置信息中与launch对应的页面信息,将launch对应的页面信息作为指定网页应用的指定访问页面信息。

获取应用配置文件中的应用配置信息,将该应用配置信息与目标协议URL(应用URL)中确定的指定启动动作(Action)进行对比,如果Action为launch,则读取应用配置信息中与launch对应的页面信息作为指定网页应用的指定访问页面信息。

此时,在映射真实的File协议URL时,控制器在执行将APP参数、APPURL和指定访问页面信息封装成File协议URL,被进一步配置为执行下述步骤:

步骤511、获取launch对应的页面信息中的index字段信息。

步骤512、将APP参数、APPURL和index字段信息封装成File协议URL。

在Action为launch时,在应用配置文件(manifest.json文件)中读取与launch对应的页面信息中的index字段信息,即page->index字段。基于APP参数、APPURL和index字段信息(page->index字段)封装成File协议URL。

在一些实施例中,在指定启动动作为deeplink时,控制器在执行解析应用配置文件,确定与指定启动动作对应的指定网页应用的指定访问页面信息,被进一步配置为海信下述步骤:

步骤421、解析应用配置文件,得到指定网页应用对应的应用配置信息。

步骤422、获取应用配置信息中与deeplink对应的页面信息,将deeplink对应的页面信息作为指定网页应用的指定访问页面信息。

获取应用配置文件中的应用配置信息,将该应用配置信息与目标协议URL(应用URL)中确定的指定启动动作(Action)进行对比,如果Action为deeplink,则读取应用配置信息中与deeplink对应的页面信息作为指定网页应用的指定访问页面信息。

此时,在映射真实的File协议URL时,控制器在执行将APP参数、APPURL和指定访问页面信息封装成File协议URL,被进一步配置为执行下述步骤:

步骤521、获取deeplink对应的页面信息中的deeplink字段信息。

步骤522、将APP参数、APPURL和deeplink字段信息封装成File协议URL。

在Action为deeplink时,在应用配置文件(manifest.json文件)中读取与deeplink对应的页面信息中的deeplink字段信息,即page->deeplink字段。基于APP参数、APPURL和deeplink字段信息(page->deeplink字段)封装成File协议URL。

基于前述两种封装方式得到的File协议URL,启动指定网页应用,可以提高应用的加载速度。同时,通过统一的Scheme机制,自定义URL,得到File协议URL,在启动指定网页应用时,以统一接口格式进行启动,可隐藏技术细节,屏蔽系统相关性,提升安全性。

基于本发明实施例提供的显示设备,在执行网页应用的启动方法时,将指定网页应用的目标协议URL自定义为File协议URL,具体的映射方式如下:

manifestInfo appInfo;//manifestInfo是存储Manifest.json文件内容的结构体

std::mapmis;//mis是key为APPID(内部id,同云端对齐),value为app结构体的配置索引表(map表),用于储存索引配置文件(mapindex.txt)中所有APP的配置信息。

if(ifVidaaScheme(url)){//url为打开应用时,从应用安装信息文件(AppInfo.json)读取的该应用URL,判断是否为自定义vidaa://协议。

ParseUrl(url,&AppId,&link);//解析该Url,读取其中的APPID存入变量AppId,后续参数信息存入link。

Path=MapRealPath(mis,AppId);//遍历mis表,找到AppId时,返回对应的Apppath(真实的file地址),保存进Path中。

Filecontent=ReadFile(Path);//读取该路径下的应用配置文件(manifest.json文件),将读取到的文件内容存入Filecontent。

JsonRead(Filecontent,&appInfo);//将Filecontent内容进行解析,获取到每一行信息,存入appInfo结构体中。

至此为将目标协议URL映射成File协议URL的实现过程。

例如,将指定网页应用的目标协议URL:vidaa://apps/launch/12345,映射成File协议URL:file:///APPS/com.vidaa.shahid/index.html,启动指定网页应用,即shahid应用。

再例如,将应用的目标协议URL:vidaa://apps/launch/12345/?id=23456,映射成File协议URL:file:///APPS/com.vidaa.shahid/index.html?id=23456,启动shahid应用的23456媒资。

图6示出了根据一些实施例的网页应用的启动方法的流程图。参见图6,本发明实施例提供一种网页应用的启动方法,由前述实施例提供的显示设备中的控制器执行,该方法包括以下步骤:

S1、响应于指定网页应用的启动请求,获取所述指定网页应用的应用URL、索引配置文件和应用配置文件;

S2、在所述应用URL为目标协议URL时,解析所述应用URL,得到所述指定网页应用对应的指定启动动作、APPID和APP参数;

S3、遍历所述索引配置文件,查找与所述APPID对应的APPURL,所述APPURL为所述指定网页应用在显示设备中存储的真实访问路径;

S4、解析所述应用配置文件,确定与所述指定启动动作对应的所述指定网页应用的指定访问页面信息;

S5、将所述APP参数、APPURL和指定访问页面信息封装成File协议URL,以及,基于所述File协议URL启动所述指定网页应用。

由以上技术方案可知,本发明实施例提供的一种网页应用的启动方法及显示设备,在启动指定网页应用时,如果对应的应用URL为目标协议URL时,进行解析,得到指定启动动作、APPID和APP参数;遍历索引配置文件,查找与APPID对应的APPURL,解析应用配置文件,确定与指定启动动作对应的指定访问页面信息;将APP参数、APPURL和指定访问页面信息封装成File协议URL,基于File协议URL启动指定网页应用。可见,本发明实施例提供的方法及显示设备,将目标协议URL映射成File协议URL,提供统一接口格式,可直接启动指定网页应用,提高网页应用的加载性能,提高加载体验。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的网页应用的启动方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于网页应用的启动方法实施例而言,由于其基本相似于显示设备实施例,所以描述的比较简单,相关之处参见显示设备实施例中的说明即可。

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

为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

相关技术
  • 一种网页应用的启动方法及显示设备
  • 网页应用程序的接口调用方法、显示设备及服务器
技术分类

06120112423098