CN115309470A - 微件的加载方法、装置、设备以及存储介质 - Google Patents

微件的加载方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN115309470A
CN115309470A CN202210820930.6A CN202210820930A CN115309470A CN 115309470 A CN115309470 A CN 115309470A CN 202210820930 A CN202210820930 A CN 202210820930A CN 115309470 A CN115309470 A CN 115309470A
Authority
CN
China
Prior art keywords
widget
interactive
displayed
rendering result
configuration data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210820930.6A
Other languages
English (en)
Other versions
CN115309470B (zh
Inventor
周航
袁弼黎
陈铭
高炜
陈宗远
师帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210820930.6A priority Critical patent/CN115309470B/zh
Publication of CN115309470A publication Critical patent/CN115309470A/zh
Priority to PCT/CN2023/075396 priority patent/WO2024011899A1/zh
Application granted granted Critical
Publication of CN115309470B publication Critical patent/CN115309470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开提供了一种微件的加载方法、装置、设备以及存储介质,涉及计算机技术领域,尤其涉及客户端技术领域。具体实现方案为:获取与目标微件对应的代码数据、布局信息和样式资源;根据代码数据、布局信息和样式资源,确定渲染结果和与渲染结果对应的交互响应信息;将渲染结果转换为与终端设备匹配的目标形式,得到待展示对象;根据交互响应信息,确定与待展示对象对应的交互配置数据;以及根据待展示对象和交互配置数据,加载目标微件。本公开还提供了一种程序产品。

Description

微件的加载方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及客户端技术领域。
背景技术
近年来,随着互联网的发展,智能手机、平板电脑等智能设备的普及率也越来越高。用户可以通过智能设备中的应用程序(Application,APP)获取各种服务。Widget(微件)是一种应用程序插件,可以用于显示应用程序的各类信息,例如天气、新闻、图片等。Widget可以展示在桌面、应用程序界面或网站页面中。Widget可以具有提高用户获取价值信息的效率、满足用户对于桌面美化的需求以及优化用户留存等作用。因此,很多应用程序推出了Widget功能。
发明内容
本公开提供了一种微件的加载方法、装置、设备、存储介质以及程序产品。
根据本公开的一方面,提供了一种微件的加载方法,包括:获取与目标微件对应的代码数据、布局信息和样式资源;根据所述代码数据、所述布局信息和样式资源,确定渲染结果和与所述渲染结果对应的交互响应信息;将所述渲染结果转换为与终端设备匹配的目标形式,得到待展示对象;根据所述交互响应信息,确定与所述待展示对象对应的交互配置数据;以及根据所述待展示对象和所述交互配置数据,加载所述目标微件。
根据本公开的另一方面,提供了一种微件的加载装置,包括:获取模块,用于获取与目标微件对应的代码数据、布局信息和样式资源;第一确定模块,用于根据所述代码数据、所述布局信息和样式资源,确定渲染结果和与所述渲染结果对应的交互响应信息;转换模块,用于将所述渲染结果转换为与终端设备匹配的目标形式,得到待展示对象;第二确定模块,用于根据所述交互响应信息,确定与所述待展示对象对应的交互配置数据;以及加载模块,用于根据所述待展示对象和所述交互配置数据,加载目标微件。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开实施例所示方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示意性示出了根据本公开实施例的可以应用微件的加载方法和装置的示例性***架构;
图2示意性示出了根据本公开的实施例的微件的加载方法的流程图;
图3示意性示出了根据本公开的实施例的渲染结果和交互响应信息的方法的流程图;
图4示意性示出了根据本公开的实施例的微件的加载的示意图;
图5示意性示出了根据本公开另一实施例的微件的加载方法的流程图;
图6示意性示出了根据本公开另一实施例的微件的加载装置的框图;以及
图7示意性示出了可以用来实施本公开的实施例的示例电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下将结合图1对本公开提供的可以应用微件的加载方法和装置的***架构进行描述。
图1示意性示出了根据本公开实施例的可以应用微件的加载方法和装置的示例性***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
服务器105可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(Virtual Private Server,或简称VPS)中,存在的管理难度大,业务扩展性弱的缺陷。服务器105也可以为分布式***的服务器,或者是结合了区块链的服务器。
根据本公开的实施例,终端设备101、102、103可以向服务器105发送微件加载请求。服务器105响应于接收到来自终端设备的微件加载请求,可以获取与所述微件加载请求对应的代码数据、布局信息和样式资源。然后将代码数据、布局信息和样式资源发送至终端设备101、102、103。终端设备101、102、103可以根据代码数据、布局信息和样式资源,加载对应的微件。
但是,终端设备101、102、103可能分别基于不同的操作***,其中,操作***例如可以包括Android、HarmonyOS、iOS等等。不同操作***所支持的微件并不相同。因此,相关技术需要针对不同操作***分别开发对应的微件,开发门槛与研发成本较高。
基于此,根据本公开的实施例,服务器105在接收到来自终端设备的微件加载请求时,解析得到微件加载请求针对的目标微件。然后可以获取与目标微件对应的代码数据、布局信息和样式资源。接着将代码数据、布局信息和样式资源发送至终端设备。终端设备可以根据代码数据、布局信息和样式资源,确定渲染结果和与渲染结果对应的交互响应信息。然后将渲染结果转换为与终端设备匹配的目标形式,得到待展示对象。根据交互响应信息,确定与待展示对象对应的交互配置数据。接着可以根据待展示对象和交互配置数据,来加载目标微件。
通过将与目标微件对应的代码数据、布局信息和样式资源,转换为可以适配于终端设备的待展示对象和交互配置数据,使目标微件可以兼容不同的操作***。不需要重复开发,降低了开发门槛与研发成本。
相关技术通过操作***API(Application Programming Interface,应用程序编程接口)在应用程序中直接开发微件,在更新微件时需要对应用程序进行更新。
根据本公开的实施例,通过服务器来控制向终端设备下发的代码数据、布局信息和样式资源,以便终端设备根据代码数据、布局信息和样式资源生成对应的微件,不需要更新应用程序即可更新微件,可以随时对微件进行动态更新。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
以下将结合图2对本公开提供的微件的加载方法进行描述。
图2示意性示出了根据本公开的实施例的微件的加载方法的流程图。
如图2所示,该微件的加载方法200包括操作S210~S250。该微件的加载方法200例如可以由上文所示的终端设备执行。
在操作S210,获取与目标微件对应的代码数据、布局信息和样式资源。
根据本公开的实施例,微件(Widget)是一种应用程序插件,可以用于显示应用程序的各类信息,例如天气、新闻、图片等。微件可以展示在桌面、应用程序界面或网站页面中。目标微件为终端设备意图加载的微件。
根据本公开的实施例,代码数据可以用于实现微件所对应的业务逻辑。代码数据例如可以包括由JavaScript等脚本语言开发的代码。布局信息可以用于描述微件的布局。布局信息例如可以包括HTML(HyperText Markup Language,超文本标记语言)文件等。样式资源例如可以用于描述微件的样式,例如可以包括CSS(Cascading Style Sheets,样式层叠表)、图片等。
根据本公开的实施例,终端设备例如可以从服务器获取与目标微件对应的代码数据、布局信息和样式资源。
然后,在操作S220,根据代码数据、布局信息和样式资源,确定渲染结果和与渲染结果对应的交互响应信息。
根据本公开的实施例,例如可以根据布局信息和样式资源进行渲染,得到原始微件,作为渲染结果。交互响应信息可以用于描述渲染后的原始微件所具有的交互响应功能。交互响应信息例如可以包括网页DOM(文档对象模型)树、结构化原生视图树等。
示例性地,以布局信息为HTML,样式资源为CSS为例,可以根据HTML和CSS进行渲染,得到网页形式的微件,作为渲染结果。
在操作S230,将渲染结果转换为与终端设备匹配的目标形式,得到待展示对象。
根据本公开的实施例,终端设备为需要加载微件的终端设备。由于终端设备可能基于不同类型的操作***,因此部分终端设备可能因为操作***兼容性问题并不支持直接加载原始微件。基于此,可以将渲染结果转换为与终端设备匹配的目标形式,得到待展示对象。
根据本公开的实施例,目标形式可以根据终端设备的操作***类型来确定。目标形式例如可以包括图片、文字、列表等等。
在操作S240,根据交互响应信息,确定与待展示对象对应的交互配置数据。
根据本公开的实施例,交互配置数据可以用于描述与待展示对象对应的交互响应功能。
在操作S250,根据待展示对象和交互配置数据,加载目标微件。
根据本公开的实施例,终端设备例如可以在微件展示区域中展示待展示对象。然后根据交互配置数据,为微件展示区域设置交互响应功能,由此实现了目标微件的加载。
示例性地,本实施例中,例如可以在微件展示区域中设置显示容器,将待展示对象添加至显示容器中来展示。显示容器例如可以包括视图组件。其中,视图组件例如可以包括Android***中的View组件、iOS***中的UIView组件等。
终端设备的操作***限制了可在微件展示区域中使用的视图组件类型,因此需要将渲染结果转换为与终端设备匹配的目标形式。例如,对于Android、HarmonyOS和iOS等***,用于展示网页的视图组件(WebView)不允许在微件展示区域中使用。因此,对于网页形式的微件无法在微件展示区域中展示,故本实施例中可以将网页形式的渲染结果进行转换为图片等操作***可以支持的形式。
根据本公开的实施例,针对基于不同操作***的终端设备,将目标微件的代码数据、布局信息和样式资源,转换为可以适配于终端设备的待展示对象和交互配置数据,再根据待展示对象和交互配置数据加载目标微件,从而可以支持不同操作***的终端设备,不需要针对不同操作***分别开发对应的微件,降低了开发门槛与研发成本。
另外,根据本公开的实施例,通过服务器来控制向终端设备下发的代码数据、布局信息和样式资源,以便终端设备根据代码数据、布局信息和样式资源生成对应的微件,不需要更新应用程序即可更新微件,可以随时对微件进行动态更新。
根据本公开的实施例,用户可以通过终端设备触发微件添加操作,添加操作可以用于将微件添加到终端设备的桌面。然后用户可以通过手动指定该微件提供的服务,或者可以由应用程序自动操作来设置微件所提供的服务。其中,服务例如可以包括展示考试信息、展示天气信息、展示开奖信息等等。然后存储该微件的微件标识、摘要信息以及对应服务的服务标识之间的映射关系。其中,微件的摘要信息例如可以包括宽度、高度、获取内容数据的页面地址、主题色、更新间隔、配置页地址等。示例性地,本实施例中,可以预先根据实际需要为每种微件设置对应的摘要信息。
根据本公开的实施例,在加载微件时,终端设备可以根据微件的标识信息查询对应的服务标识与摘要信息,并根据服务标识与摘要信息向对应服务器发送请求,以获取微件的内容数据。然后根据布局信息、样式资源和内容数据,生成渲染结果。基于该渲染结果加载微件。其中,内容数据例如可以包括展示在微件中的数据,例如考试信息、天气信息、开奖信息及新闻资讯等。然后根据布局信息、样式资源和内容数据,生成渲染结果。
根据本公开的实施例,当微件需要刷新时,终端设备可以根据微件的标识信息查询对应的服务标识与摘要信息,并根据服务标识与摘要信息向对应服务器发送请求,以获取新的内容数据。然后根据布局信息、样式资源和新的内容数据,生成新的渲染结果。接着基于新的渲染结果,更新微件。其中,微件的刷新可以根据用户配置或自动定期触发,或者也可以由应用程序设定闹钟来触发。
根据本公开的实施例,例如可以在云端聚合管理各应用程序支持的所有微件服务。当云端收到来自终端设备的内容获取请求时,可以根据请求中的参数,向终端设备下发参数指定的最新的内容数据。其中,参数例如可以包括服务信息,例如城市信息、考试类型等。
示例性地,可以在云端设置多个服务器,每一个微件业务可以有对应的服务器模块,用于为微件提供内容数据。
以下将结合图3对本公开提供的确定渲染结果和交互响应信息方法进行描述。
图3示意性示出了根据本公开的实施例的渲染结果和交互响应信息的方法的流程图。
如图3所示,该渲染结果和交互响应信息的方法320包括在操作S321,根据布局信息和样式资源,生成原始页面。
根据本公开的实施例,例如可以根据布局信息和样式资源,生成原始微件的原始页面。
在操作S322,执行代码数据,得到执行结果。
根据本公开的实施例,可以通过执行代码数据,生成原始微件中需要动态生成的数据,作为执行结果。例如,原始微件中的部分元素需要动态计算元素尺寸,基于此,可以通过执行代码数据,生成这些元素的元素尺寸,作为执行结果。
根据本公开的另一实施例,还可以通过执行代码数据,获取外部服务器中的内容数据,作为执行结果。例如,原始微件中的需要展示天气信息,基于此,可以通过执行代码数据,从服务器获取天气信息,作为执行结果。
在操作S323,根据执行结果和原始页面,生成目标页面,作为渲染结果。
根据本公开的实施例,例如可以根据可以将动态生成的数据和/或来自外部服务器的内容数据加入原始页面中,得到目标页面。
例如,可以将动态生成的元素尺寸替换原始页面中对应的元素尺寸,得到目标页面。
又例如,可以将来自外部服务器的天气信息添加至原始页面中对应的位置,得到目标页面。
根据本公开的实施例,目标页面可以包括至少一个交互元素。交互元素具有交互响应功能,可以响应于交互操作,触发对应的响应事件。其中,交互元素例如可以包括按钮、文字、图片等等。交互操作例如可以包括点击、长按等。响应事件例如可以包括跳转对应的应用程序界面或网页、执行目标应用程序通过接口开放的程序指令等等。
在操作S324,确定代码数据中与至少一个交互元素对应的交互响应代码,作为交互响应信息。
根据本公开的实施例,交互元素对应的交互响应代码可以用于指示该交互元素会对哪些交互操作进行响应,以及对应的响应事件是什么。
根据本公开的实施例,在确定交互响应信息之后,例如可以确定待展示对象中与至少一个交互元素对应的元素区域。然后根据交互响应信息,确定每个元素区域的交互配置数据。
对应地,根据本公开的实施例,终端设备在接收到交互配置数据之后,可以根据交互配置数据指示的至少一个元素区域,将微件展示区域划分为至少一个子展示区域。至少一个子展示区域与至少一个元素区域一一对应。在至少一个子展示区域中的每个子展示区域中设置视图组件。然后根据每个元素区域的交互配置数据,为与每个元素区域对应的视图组件配置交互响应功能。
根据本公开的另一实施例,终端设备也可以在微件展示区域中设置主视图组件,其中,主视图组件包括至少一个子视图组件,至少一个子视图组件与至少一个元素区域一一对应。然后根据每个元素区域的交互配置数据,为与每个元素区域对应的子视图组件配置交互响应功能。
下面参考图4,结合具体实施例对上文所示的微件的加载方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
示例性地,本实施例中,微件的代码数据包括JavaScript数据,微件的布局信息包括HTML,微件的样式资源包括CSS。
图4示意性示出了根据本公开的实施例的微件的加载的示意图。
在图4中示出了,终端设备可以基于浏览器技术根据HTML和CSS加载并渲染微件的页面,得到渲染结果r1和交互响应信息t1。然后可以将渲染结果r1被处理为图片,作为待展示对象p1。例如,可以对微件的页面进行截图,得到图片。其中,图片的形式可以被Android、HarmonyOS、iOS等主流操作***支持。
示例性地,本实施例中,渲染结果r1包括车辆检测按钮41、出行政策按钮42、车辆服务地按钮43、新闻播报栏44、城市栏45以及其他元素。其中,车辆检测按钮41被点击时调起车辆检测小程序。出行政策按钮42被点击时调起出行政策搜索结果页。车辆服务地按钮43被点击时调起车辆服务地图页面。新闻播报栏44被点击时调起本地新闻播报页面。城市栏45被点击时调起城市切换设置页面。其他元素被点击时调起搜索结果页。
基于此,可以将p1划分为多个网格区域,每个区域可单独响应交互事件,交互响应可以支持包括但不限于调起宿主应用程序页面、其他应用程序页面、以及触发其他自定义指令。然后可以在p1中确定与车辆检测按钮41对应的区域t11、与出行政策按钮42对应的区域t12、与车辆服务地按钮43对应的区域t13、与新闻播报栏44对应的区域t14、与城市栏45对应的区域t15。其他元素对应于区域t11、t12、t13、t14、t15之外其他区域。
然后根据车辆检测按钮41、出行政策按钮42、车辆服务地按钮43、新闻播报栏44、城市栏45的交互响应代码,确定交互响应信息t1。
终端设备在接收到待展示对象p1和交互配置数据t1之后,可以将待展示对象p1在微件展示区域中展示,然后根据交互配置数据t1指示的元素区域,将微件展示区域划分为t11、t12、t13、t14、t15以及其他区域。并为每个区域配置交互响应功能。例如,区域t11被点击时调起车辆检测小程序。区域t12被点击时调起出行政策搜索结果页。区域t13被点击时调起车辆服务地图页面。区域t14被点击时调起本地新闻播报页面。区域t15被点击时调起城市切换设置页面。微件展示区域中除区域t11、t12、t13、t14、t15之外其他区域被点击时调起搜索结果页。
根据本公开的另一实施例,例如可以预先根据各种操作***的API,设置支持展现图片的布局模版文件。该布局模版文件可以随应用程序发布。布局模板文件中显示的图片内容支持任意设置。基于此,可以将渲染结果转换为至少一个图片。然后根据与终端设备对应的模板文件和至少一个图片,确定待展示对象。例如,可以将渲染结果转换为图片后再设置至布局模版文件中,得到待展示对象。特别的,对于高度较长、超出微件展示区域的图片,可以在微件展示区域中设置列表视图组件,然后将图片按微件展示区域的大小进行分割并纵向排布放入列表视图组件中,以支持该图片。
下面结合具体实施例对上文所示的微件的加载方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
示例性地,本实施例中,假设用户手机上存在Widget实例w1和w2,其中,w1为用户在应用程序内页面p1上触发添加Widget操作后,添加到桌面并自动配置为使用服务s1,p1页面与服务s1存在内容相关性。w2为用户在桌面手动添加并手动选取为使用服务s2,s2为应用程序对应服务器所支持服务之一,该服务器所支持服务可以随时新增,以实现扩展。
示例性地,本实施例中,终端设备可以预先在Widget配置存储模块中配置有如表1所示的信息。
Figure 768322DEST_PATH_IMAGE001
当操作***或应用程序触发Widget实例w1刷新,或者由用户手动触发Widget实例w1刷新时,终端设备可以从Widget配置存储模块查询w1的唯一标识i1所对应的服务器模块s1,并向s1发起Widget内容获取请求。s1返回Widget内容c1,其中c1包含动态脚本语言编写的代码数据、布局信息、样式资源等。
终端设备可以解析并执行c1中包含的代码数据,结合布局信息、样式资源等,输出渲染结果r1与交互响应信息t1。
然后,终端设备可以将r1转换为终端设备支持的内容形式,内容形式例如图片,将终端设备支持的内容呈现在w1实例对应的桌面Widget显示容器中。
另外,终端设备可以将t1转换为终端设备所支持的交互配置形式。例如,可以将整体Widget区域划分为依序编号的网格化子区域,使用网格类型视图控件,利用网格类型视图控件的子视图对每个子区域配置独立的交互响应。或者,也可以使用若干个独立视图,按网格进行排布,每个独立视图配置独立的交互响应。
经过如上步骤,用户可看到经过动态逻辑处理后生成的Widget渲染内容,用户可以点击Widget上的区域,可触发该区域特定的交互响应。其中,交互响应可以支持包括但不限于调起宿主应用程序页面、其他应用程序页面、以及触发其他自定义指令。本实施例中,渲染内容、交互响应信息均支持随任意程序逻辑动态化修改。
当操作***或应用程序触发Widget实例w2刷新,或者由用户手动触发Widget实例w2刷新时,终端设备从Widget配置存储模块查询w2的唯一标识i2所对应的服务器模块s2,并向s2发起Widget内容获取请求,s2返回Widget内容c2,其中c2包含动态脚本语言编写的代码数据、布局信息、样式资源等。
终端设备可以解析并执行c2中包含的业务逻辑代码,结合布局信息、样式资源等,输出布局渲染结果r2与交互响应信息t2。
接着终端设备可以将r2转换为终端设备支持的内容形式,例如图片,将终端设备支持的内容呈现在w2实例对应的桌面Widget显示容器中。
另外终端设备可以将t2转换为终端设备所支持的交互配置形式。例如,可以将整体Widget区域划分为依序编号的网格化子区域,使用网格类型视图控件,利用网格类型视图控件的子视图对每个子区域配置独立的交互响应。或者,也可以使用若干个独立视图,按网格进行排布,每个独立视图配置独立的交互响应。
经过如上步骤,用户可看到经过动态逻辑处理后生成的Widget渲染内容,用户可以点击Widget上的区域,可触发该区域特定的交互响应。其中,交互响应可以支持包括但不限于调起宿主应用程序页面、其他应用程序页面、以及触发其他自定义指令。本实施例中,渲染内容、交互响应信息均支持随任意程序逻辑动态化修改。
当Widget实例w1需要进行升级时,s1在收到Widget内容获取请求时,向终端设备返回更新后的Widget内容c11,其中c11包含升级后的代码数据、布局信息、样式资源等。
终端设备根据c11进行渲染,后续流程与前述相同。由此,用户可看到经过升级的微件。当交互响应信息需要升级时同理。
当需要向应用程序新增Widget服务类别s3时,开发者可以向服务器提交服务类别s3。s3的激活使用方式例如可以包括:在应用程序内访问与s3内容相关页面时,可提供自动添加并配置s3对应服务的Widget的按钮,用户点击按钮后在桌面新生成Widget实例w3并提供s3服务。
用户在桌面手动添加Widget实例w3后,可向用户展示配置服务列表,其中配置服务列表中包含s3服务,用户可以手动选择s3,以便将w3设置为使用s3服务。
图5示意性示出了根据本公开另一实施例的微件的加载方法的流程图。
如图5所示,该微件的加载方法500包括在操作S510,服务器获取原始微件的代码数据、布局信息和样式资源。
然后,在操作S520,服务器根据代码数据、布局信息和样式资源,确定渲染结果和与渲染结果对应的交互响应信息。
根据本公开的实施例,确定渲染结果和与渲染结果对应的交互响应信息的具体方法例如可以参考上文,再次不再赘述。
在操作S530,服务器将渲染结果转换为与终端设备匹配的目标形式,得到待展示对象。
根据本公开的实施例,将渲染结果转换为与终端设备匹配的目标形式的具体方法例如可以参考上文,再次不再赘述。
在操作S540,服务器根据交互响应信息,确定与待展示对象对应的交互配置数据。
根据本公开的实施例,确定与待展示对象对应的交互配置数据的具体方法例如可以参考上文,再次不再赘述。
在操作S550,服务器将待展示对象和交互配置数据发送至终端设备。
在操作S560,终端设备接收来自服务器的待展示对象和交互配置数据。
在操作S570,终端设备根据待展示对象和交互配置数据,加载目标微件。
根据本公开的实施例,根据待展示对象和交互配置数据,加载目标微件的具体方法例如可以参考上文,再次不再赘述。
部分终端设备的操作***和/或浏览器存在兼容性问题,导致无法根据代码数据、布局信息和样式资源生成渲染结果和交互响应信息。
根据本公开的实施例,通过服务器执行确定渲染结果和交互响应信息、将渲染结果和交互响应信息转换为与终端设备匹配的待展示对象和交互配置数据的操作,能够避免不同终端设备的操作***和/或浏览器的兼容性问题。
而由终端设备执行确定渲染结果和交互响应信息、将渲染结果和交互响应信息转换为与终端设备匹配的待展示对象和交互配置数据的操作,能够减少服务器的计算压力。另外,终端设备可以获取自身独有的参数信息,根据参数信息,确定渲染结果和/或交互响应信息,从而可以在微件中实现更丰富的功能。例如,终端设备可以获取自身的地理位置参数,然后确定与该地理位置参数匹配的内容数据,将该内容数据添加至渲染结果中,从而可以在微件中展示与终端设备所处地理位置匹配的内容数据。
以下将结合图6对本公开提供的微件的加载装置进行描述。
图6示意性示出了根据本公开实施例的微件的加载装置的框图。
如图6所示,微件的加载装置600包括获取模块610、第一确定模块620、转换模块630和第二确定模块640。
获取模块610,用于获取与目标微件对应的代码数据、布局信息和样式资源。
第一确定模块620,用于根据代码数据、布局信息和样式资源,确定渲染结果和与渲染结果对应的交互响应信息。
转换模块630,用于将渲染结果转换为与终端设备匹配的目标形式,得到待展示对象。
第二确定模块640,用于根据交互响应信息,确定与待展示对象对应的交互配置数据。
加载模块650,用于根据待展示对象和交互配置数据,加载目标微件。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示意性示出了可以用来实施本公开的实施例的示例电子设备700的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如微件的加载方法。例如,在一些实施例中,微件的加载方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的微件的加载方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行微件的加载方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (11)

1.一种微件的加载方法,包括:
获取与目标微件对应的代码数据、布局信息和样式资源;
根据所述代码数据、所述布局信息和所述样式资源,确定渲染结果和与所述渲染结果对应的交互响应信息;
将所述渲染结果转换为与终端设备匹配的目标形式,得到待展示对象;
根据所述交互响应信息,确定与所述待展示对象对应的交互配置数据;以及
根据所述待展示对象和所述交互配置数据,加载所述目标微件。
2.根据权利要求1所述的方法,其中,所述根据所述代码数据、所述布局信息和所述样式资源,确定渲染结果和与所述渲染结果对应的交互响应信息,包括:
根据所述布局信息和所述样式资源,生成原始页面;
执行所述代码数据,得到执行结果;
根据所述执行结果和所述原始页面,生成目标页面,作为所述渲染结果,其中,所述目标页面包括至少一个交互元素;以及
确定所述代码数据中与所述至少一个交互元素对应的交互响应代码,作为所述交互响应信息。
3.根据权利要求2所述的方法,其中,所述根据所述交互响应信息,确定与所述待展示对象对应的交互配置数据,包括:
确定所述待展示对象中与所述至少一个交互元素对应的至少一个元素区域;以及
根据所述交互响应信息,确定所述至少一个元素区域中每个元素区域的交互配置数据。
4.根据权利要求1-3中任一项所述的方法,其中,所述将所述渲染结果转换为与终端设备匹配的目标形式,得到待展示对象,包括:
将所述渲染结果转换为至少一个图片;以及
根据与所述终端设备对应的布局模板文件和所述至少一个图片,确定所述待展示对象。
5.根据权利要求3所述的方法,其中,所述根据所述待展示对象和所述交互配置数据,加载所述目标微件,包括:
在微件展示区域中展示所述待展示对象;以及
根据所述交互配置数据,为所述微件展示区域设置交互响应功能。
6.根据权利要求5所述的方法,其中,所述根据所述交互配置数据,为所述微件展示区域设置交互响应功能,包括:
根据所述至少一个元素区域,将所述微件展示区域划分为至少一个子展示区域;
在所述至少一个子展示区域中的每个子展示区域中设置视图组件;以及
根据所述每个元素区域的交互配置数据,为与所述每个元素区域对应的视图组件配置交互响应功能。
7.根据权利要求5所述的方法,其中,所述根据所述交互配置数据,为所述微件展示区域设置交互响应功能,包括:
在所述微件展示区域中设置主视图组件,其中,所述主视图组件包括至少一个子视图组件,所述至少一个子视图组件与所述至少一个元素区域一一对应;以及
根据所述每个元素区域的交互配置数据,为与所述每个元素区域对应的子视图组件配置交互响应功能。
8.一种微件的加载装置,包括:
获取模块,用于获取与目标微件对应的代码数据、布局信息和样式资源;
第一确定模块,用于根据所述代码数据、所述布局信息和所述样式资源,确定渲染结果和与所述渲染结果对应的交互响应信息;
转换模块,用于将所述渲染结果转换为与终端设备匹配的目标形式,得到待展示对象;
第二确定模块,用于根据所述交互响应信息,确定与所述待展示对象对应的交互配置数据;以及
加载模块,用于根据所述待展示对象和所述交互配置数据,加载目标微件。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
CN202210820930.6A 2022-07-13 2022-07-13 微件的加载方法、装置、设备以及存储介质 Active CN115309470B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210820930.6A CN115309470B (zh) 2022-07-13 2022-07-13 微件的加载方法、装置、设备以及存储介质
PCT/CN2023/075396 WO2024011899A1 (zh) 2022-07-13 2023-02-10 微件的加载方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210820930.6A CN115309470B (zh) 2022-07-13 2022-07-13 微件的加载方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN115309470A true CN115309470A (zh) 2022-11-08
CN115309470B CN115309470B (zh) 2023-07-28

Family

ID=83857378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210820930.6A Active CN115309470B (zh) 2022-07-13 2022-07-13 微件的加载方法、装置、设备以及存储介质

Country Status (2)

Country Link
CN (1) CN115309470B (zh)
WO (1) WO2024011899A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116074435A (zh) * 2022-12-23 2023-05-05 深圳前海百递网络有限公司 小组件的更新方法、装置、电子设备以及计算机存储介质
WO2024011899A1 (zh) * 2022-07-13 2024-01-18 百度在线网络技术(北京)有限公司 微件的加载方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106886435A (zh) * 2017-01-04 2017-06-23 乐视控股(北京)有限公司 微件的加载方法及装置
CN112395027A (zh) * 2019-08-14 2021-02-23 腾讯科技(深圳)有限公司 微件界面生成方法、装置、存储介质与电子设备
CN113127091A (zh) * 2021-03-17 2021-07-16 北京达佳互联信息技术有限公司 微件的展示方法、装置、设备、存储介质及程序产品
CN113220176A (zh) * 2021-04-13 2021-08-06 Oppo广东移动通信有限公司 基于微件的显示方法、装置、电子设备及可读存储介质
CN113268305A (zh) * 2021-06-01 2021-08-17 中兴通讯股份有限公司 微件的显示方法、装置、终端及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866283B (zh) * 2009-04-14 2013-03-27 华为技术有限公司 Widget移植方法和装置
CN103605527A (zh) * 2013-12-06 2014-02-26 普元信息技术股份有限公司 实现云计算应用间界面集成和统一样式展现的***及方法
US10268460B2 (en) * 2017-01-25 2019-04-23 Walmart Apollo, Llc Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage
CN115309470B (zh) * 2022-07-13 2023-07-28 百度在线网络技术(北京)有限公司 微件的加载方法、装置、设备以及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106886435A (zh) * 2017-01-04 2017-06-23 乐视控股(北京)有限公司 微件的加载方法及装置
CN112395027A (zh) * 2019-08-14 2021-02-23 腾讯科技(深圳)有限公司 微件界面生成方法、装置、存储介质与电子设备
CN113127091A (zh) * 2021-03-17 2021-07-16 北京达佳互联信息技术有限公司 微件的展示方法、装置、设备、存储介质及程序产品
CN113220176A (zh) * 2021-04-13 2021-08-06 Oppo广东移动通信有限公司 基于微件的显示方法、装置、电子设备及可读存储介质
CN113268305A (zh) * 2021-06-01 2021-08-17 中兴通讯股份有限公司 微件的显示方法、装置、终端及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024011899A1 (zh) * 2022-07-13 2024-01-18 百度在线网络技术(北京)有限公司 微件的加载方法、装置、设备以及存储介质
CN116074435A (zh) * 2022-12-23 2023-05-05 深圳前海百递网络有限公司 小组件的更新方法、装置、电子设备以及计算机存储介质

Also Published As

Publication number Publication date
CN115309470B (zh) 2023-07-28
WO2024011899A1 (zh) 2024-01-18

Similar Documents

Publication Publication Date Title
CN106991154B (zh) 网页渲染方法、装置、终端及服务器
US11144711B2 (en) Webpage rendering method, device, electronic apparatus and storage medium
CN109683998B (zh) 国际化实现方法、装置和***
EP3518124A1 (en) Webpage rendering method and related device
CN115309470B (zh) 微件的加载方法、装置、设备以及存储介质
CN110032324B (zh) 一种文本选中方法及终端
CN106874519B (zh) 页面展现方法和装置
US11151314B2 (en) Extensible grid layout
US10951486B2 (en) Terminal device, UI expansion method, and UI expansion program
CN113505302A (zh) 支持动态获取埋点数据的方法、装置、***及电子设备
CN112395027A (zh) 微件界面生成方法、装置、存储介质与电子设备
CN111783019A (zh) 浏览器子页面创建方法、装置、计算机设备和存储介质
CN111079048B (zh) 一种页面加载方法及装置
US11438403B2 (en) Page presentation method and system, computer system, and computer readable medium
CN107918552B (zh) 轻应用调用方法、装置、客户端装置及电子设备
CN108268298B (zh) 桌面图标的生成方法、装置、存储介质及电子设备
CN112395535A (zh) 图片的懒加载方法及装置、介质和电子设备
CN110309454B (zh) 一种界面显示方法、装置、设备及存储介质
CA3093640A1 (en) Systems and methods for providing a web application to a computing device
US11874890B2 (en) Multi-entry point navigation for user interfaces
JP2014059700A (ja) 画面コントロール表示システムおよび画面コントロール表示プログラム
WO2022113315A1 (ja) ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム
CN114065077A (zh) 网页显示方法、装置、电子设备及存储介质
CN108268297B (zh) 应用界面的显示方法、装置、存储介质及电子设备
CN116225437A (zh) 页面生成方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant