显示小程序页面的方法、装置、设备、介质及程序产品制造方法及图纸

技术编号:35903473 阅读:20 留言:0更新日期:2022-12-10 10:40
本公开提供了一种显示小程序页面的方法、装置、设备、介质及程序产品,涉及计算机技术领域,尤其涉及小程序技术领域中的页面显示技术。具体实现方案为:确定在宿主应用程序中待加载的小程序;创建所述小程序的视图View容器;基于所述宿主应用程序的View树,确定运行所述宿主应用程序的主进程;将运行所述View容器的子进程添加至所述主进程中运行。通过本公开实现在宿主应用程序中以嵌入式视图形态运行小程序,进而支持小程序与宿主应用程序进行业务交互,扩展了小程序的应用场景。扩展了小程序的应用场景。扩展了小程序的应用场景。

【技术实现步骤摘要】
显示小程序页面的方法、装置、设备、介质及程序产品


[0001]本公开涉及计算机
,尤其涉及小程序
中的页面显示技术。

技术介绍

[0002]小程序作为一种不需要下载安装即可使用的应用,在越来越多的应用程序上被加载,以为用户提供更加便捷的服务。
[0003]相关技术中,小程序以独立的Activity作为视图容器,并进行独立的页面栈和生命周期管理。进入小程序的程序入口(流量)为独立于宿主应用程序的固定入口。进入小程序后,小程序页面以完整视图形态运行,并以窗口覆盖的形式覆盖宿主应用程序页面。

技术实现思路

[0004]本公开提供了一种用于显示小程序页面的方法、装置、设备、介质及程序产品。
[0005]根据本公开的一方面,提供了一种显示小程序页面的方法,所述方法包括:
[0006]确定在宿主应用程序中待加载的小程序;创建所述小程序的视图View容器;基于所述宿主应用程序的View树,确定运行所述宿主应用程序的主进程;将运行所述View容器的子进程添加至所述主进程中运行。
[0007]根据本公开的另一方面,提供了一种显示小程序页面的装置,包括:
[0008]确定单元,用于确定在宿主应用程序中待加载的小程序;
[0009]创建单元,用于创建所述小程序的视图View容器;
[0010]内嵌显示单元,用于基于所述宿主应用程序的View树,确定运行所述宿主应用程序的主进程,将运行所述View容器的子进程添加至所述主进程中运行。
[0011]根据本公开的另一方面,提供一种电子设备,包括:
[0012]至少一个处理器;以及
[0013]与所述至少一个处理器通信连接的存储器;其中,
[0014]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。
[0015]根据本公开的另一方面,提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的方法。
[0016]根据本公开的另一方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述的方法。
[0017]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0018]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0019]图1是根据本公开一示例性实施方式中示出的一种显示小程序页面的方法流程
图;
[0020]图2是根据本公开一示例性实施方式中示出的一种创建小程序的View容器的方法流程图;
[0021]图3是根据本公开一示例性实施方式中示出的一种创建基于View控件的嵌入式页面管理部件的方法流程图;
[0022]图4是根据本公开一示例性实施方式中示出的一种EmbedPageManager封装EmbedPageTransaction进行事务管理的示意图;
[0023]图5是根据本公开一示例性实施方式中示出的一种提交事务至页面显示线程的循环任务执行队列的方法流程图;
[0024]图6是根据本公开一示例性实施方式中示出的一种创建基于View控件的嵌入式生命周期管理部件的方法流程图;
[0025]图7是根据本公开一示例性实施方式中示出的一种嵌入式视图生命周期的示意图;
[0026]图8是根据本公开一示例性实施方式中示出的一种将View容器内嵌至宿主APP的View树中的方法流程图;
[0027]图9是根据本公开一示例性实施方式中示出的一种显示小程序页面的方法流程图;
[0028]图10是根据本公开另一示例性实施方式中示出的一种将运行View容器的子进程添加至主进程中的方法流程图;
[0029]图11示出了本公开一示例性实施方式中示出的一种显示小程序页面的方法流程图;
[0030]图12示出了本公开一示例性实施方式中示出的一种显示小程序页面的示意图;
[0031]图13示出了本公开一示例性实施例中小程序采用跨进程消息通信机制进行通信的示意图;
[0032]图14是根据本公开一示例性实施例中示出的一种显示小程序页面的装置的框图;
[0033]图15是根据本公开另一示例性实施例中示出的一种显示小程序页面的装置的框图;
[0034]图16示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
[0035]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0036]本公开实施例提供的显示小程序页面的方法,应用于在宿主应用程序(Application,APP)中运行小程序的场景中。
[0037]其中,小程序是一种不需要下载安装即可在应用程序(宿主应用程序)上使用的应用。
[0038]相关技术中,宿主应用程序基于小程序的应用场景为小程序分发流量入口(也称
为小程序启动的程序入口)。小程序以独立的Activity作为视图容器。其中,Activity是一个应用程序组件,用于提供一个屏幕,用户可以用来交互以完成某项任务。小程序所有页面内容承载在独立的Activity中。小程序页面与宿主APP页面无业务交互,视图窗口相对宿主APP运行窗口独立。并且,不同的小程序运行在独立的子进程,拥有独立的运行环境、业务资源、运行上下文。相关技术中,不同的小程序进行独立的页面栈和生命周期管理。通过Activity接管小程序的App生命周期,通过Fragment接管小程序的Page生命周期。小程序页面栈与路由以Fragment形式进行呈现和管理。
[0039]进入小程序的程序入口(流量)为独立于宿主APP的固定入口。进入小程序后,小程序页面以完整视图形态运行,并以窗口覆盖的形式覆盖宿主APP页面。
[0040]目前,以完整视图形态运行的小程序,存在如下的问题:
[0041]A:分发入口和应用场景受限,业界小程序流量已经达到瓶颈;
[0042]B:不支持小程序页面的视图内嵌在宿主页面内部,无法满足更高的体验诉求;
[0043]C:运行形态单一,不支持半屏、悬浮窗、Tab页等更多承载方式。
[0044]有鉴于此,本公开提供一种显示小程序页面的方法,在该方法中,在宿主APP的显示界面中内嵌显示小程序的显示界面,实现嵌入式视图形态运行的小程序,支持小程序与宿主APP进行业务交互,提升用户体验。
[0045]作为一示例性实施方式,图1是根据本公开一示例性实施方式中示出的一种显示小程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种显示小程序页面的方法,包括:确定在宿主应用程序中待加载的小程序;创建所述小程序的视图View容器;基于所述宿主应用程序的View树,确定运行所述宿主应用程序的主进程;将运行所述View容器的子进程添加至所述主进程中运行。2.根据权利要求1所述的方法,其中,所述创建所述小程序的View容器,包括:创建基于View控件的嵌入式页面管理部件,所述嵌入式页面管理部件用于对所述小程序的页面栈进行管理;创建基于View控件的嵌入式生命周期管理部件,所述嵌入式生命周期管理部件用于对所述小程序的应用程序级别的生命周期以及页面级别的生命周期进行管理。3.根据权利要求2所述的方法,其中,所述创建基于View控件的嵌入式页面管理部件,包括:确定所述小程序的页面栈中包括页面以及页面操作;将同一页面中的页面操作按照操作顺序形成操作队列,并将所述操作队列封装为事务;若所述事务被触发,则提交所述事务至页面显示线程的循环任务执行队列,并在所述页面显示线程中的循环任务执行队列中执行所述事务。4.根据权利要求3所述的方法,其中,所述提交所述事务至页面显示线程的循环任务执行队列,包括:若所述事务的触发方式为常规触发,则将所述事务添加至事务执行队列中,基于所述事务执行队列,将所述事务提交至页面显示线程的循环任务执行队列中,所述事务执行队列为所述页面栈中包括页面对应事务组成的队列;若所述事务的触发方式为立即触发,则将所述事务直接提交至页面显示线程的循环任务执行队列中。5.根据权利要求2所述的方法,其中,所述创建基于View控件的嵌入式生命周期管理部件,包括:基于所述宿主应用程序的页面状态、视图树中的视图操作,采用顶端页面分发机制,对所述小程序的应用程序级别的生命周期以及页面级别的生命周期进行管理。6.根据权利要求1所述的方法,将运行所述View容器的子进程添加至所述主进程中运行之前,还包括:若所述主进程已启动,且所述View容器的子进程已启动,则销毁所述View容器的子进程。7.一种显示小程序页面的装置,包括:确定单元,用于确定在宿主应用程序中待加载的小程序;创建单元,用于创建所述小程序的视图View容器;内嵌显示单元,用于基于所述宿主应用程序的View树,确定运行所述宿主应用程序的主进程,将运行所述View容器的子进程添加至所述主进程中运行。8.根据权利要求7所述的装置,其中,所述创建单元采用如下方式创建所述小程序的View容...

【专利技术属性】
技术研发人员:刘连东
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1