一种页面截图方法、装置、终端设备及介质转让专利
申请号 : CN202110161282.3
文献号 : CN112765526B
文献日 : 2022-04-29
发明人 : 高岩 , 郭波
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种页面截图方法,该方法包括:在混合应用的目标页面中显示用户视图,所述用户视图包括原生视图,所述目标页面包括可视区和离屏区,所述可视区显示有所述用户视图,所述离屏区显示的内容为空,所述可视区和所述离屏区是通过Native端初始化的同一个网页视图WebView加载;
对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图,包括:当接收到截图指令时,调用所述混合应用对应的H5端通知所述混合应用对应的Native端,以触发所述Native端在离屏区中加载隐藏视图,所述用户视图是在初始化所述目标页面时加载,所述隐藏视图是在接收到截图指令时加载;
获取所述隐藏视图在所述目标页面中的坐标信息,调用所述H5端将所述坐标信息发送至所述Native端;
通过所述Native端根据所述坐标信息对所述目标页面进行截图处理,以确定所述用户视图对应的截屏视图;
显示所述截屏视图,所述截屏视图中包含的内容与所述用户视图中包含的内容存在差异,所述截屏视图中包含的内容与所述混合应用对应的Native端加载的隐藏视图中包含的内容相同。
2.如权利要求1所述的方法,其特征在于,所述截屏视图包括以下任一种或者多种:下载引导图像和引导关注图像,所述下载引导图像用于触发下载所述混合应用;所述引导关注图像用于触发与目标对象建立关联关系。
3.如权利要求2所述的方法,其特征在于,所述混合应用为地图应用,所述目标页面为导航页面,所述在混合应用的目标页面中显示用户视图,包括:在所述导航页面中显示所述地图应用对应的用户视图,所述用户视图包括原生视图,所述原生视图中包含地图区,所述地图区显示有当前次导航的路线信息和地图底图。
4.如权利要求3所述的方法,其特征在于,所述导航页面为导航结束页面,所述导航结束页面是在检测到当前次导航结束时触发显示的,所述用户视图还包括网页视图,所述网页视图包括以下任一种或者多种:标题栏、码表区和评分区,所述标题栏包括视图分享按钮,所述码表区包括导航记录信息。
5.如权利要求4所述的方法,其特征在于,所述导航记录信息包括以下任一种或者多种:所述当前次导航对应的行驶总里程、行驶总时长、平均行驶速度和最高行驶速度;所述截屏视图包括所述地图区、所述码表区和目标下载引导图像,所述目标下载引导图像用于触发下载所述地图应用。
6.如权利要求3所述的方法,其特征在于,所述导航页面为导航规划页面,所述路线信息包括当前次导航对应导航规划路线的起点和终点,所述对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图包括:当检测到针对所述导航规划路线的目标端点的分享操作时,对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图,所述截屏视图中包含所述目标端点对应目标对象的引导关注图像,所述目标端点为所述起点或者终点中的任一端点。
7.如权利要求2所述的方法,其特征在于,所述混合应用为多媒体应用,所述目标页面为多媒体播放页面,所述原生视图中包含播放区,所述播放区显示有播放区底图和当前播放的多媒体文件的多媒体信息。
8.如权利要求1所述的方法,其特征在于,所述用户视图中还包括视图分享按钮,所述对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图,包括:当检测到针对所述视图分享按钮的触发操作时,对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图。
9.如权利要求8所述的方法,其特征在于,显示所述截屏视图的页面中还显示有截图分享操作按钮,所述方法还包括:
通过所述截图分享操作按钮触发选取所述截屏视图的待推送地址;
触发向所述待推送地址对应的接收端发送所述截屏视图。
10.如权利要求1所述的方法,其特征在于,所述混合应用为运行于Native原生环境下的H5网页应用,所述对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图,包括:
调用所述混合应用对应的H5端通知所述混合应用对应的Native端,以触发所述Native端加载隐藏视图,所述隐藏视图隐藏于所述用户视图正下方;
通过所述Native端对所述隐藏视图进行截屏,得到所述用户视图对应的截屏视图。
11.如权利要求1所述的方法,其特征在于,所述目标页面包括可视区和离屏区,所述可视区显示有所述用户视图,所述离屏区显示有隐藏视图;所述对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图,包括:获取所述隐藏视图在所述目标页面中的坐标信息;
调用所述混合应用对应的H5端将所述坐标信息发送至所述混合应用对应的Native端;
通过所述Native端根据所述坐标信息对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图。
12.一种页面截图装置,其特征在于,所述装置包括:显示单元,用于在混合应用的目标页面中显示用户视图,所述用户视图包括原生视图,所述目标页面包括可视区和离屏区,所述可视区显示有所述用户视图,所述离屏区显示的内容为空,所述可视区和所述离屏区是通过Native端初始化的同一个网页视图WebView加载的;
处理单元,用于对所述目标页面进行截图处理,得到所述用户视图对应的截屏视图;
所述处理单元,具体用于当接收到截图指令时,调用所述混合应用对应的H5端通知所述混合应用对应的Native端,以触发所述Native端在离屏区中加载隐藏视图,所述用户视图是在初始化所述目标页面时加载,所述隐藏视图是在接收到截图指令时加载;获取所述隐藏视图在所述目标页面中的坐标信息,调用所述H5端将所述坐标信息发送至所述Native端;通过所述Native端根据所述坐标信息对所述目标页面进行截图处理,以确定所述用户视图对应的截屏视图;
所述显示单元,还用于显示所述截屏视图,所述截屏视图中包含的内容与所述用户视图中包含的内容存在差异,所述截屏视图中包含的内容与所述混合应用对应的Native端加载的隐藏视图中包含的内容相同。
13.一种终端设备,其特征在于,所述终端设备包括处理器和存储装置,所述处理器和存储装置相互连接,其中,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1‑11任一项所述的方法。
14.一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现如权利要求1‑11任一项所述的方法。
说明书 :
一种页面截图方法、装置、终端设备及介质
技术领域
背景技术
NativeApp(原生应用)开发,WebApp(网页应用)开发,及即HybirdApp(混合应用)。
HybirdApp介于NativeApp和WebApp之间,兼具NativeApp的良好用户体验的优势和WebApp
跨平台开发的优势,成为近年来各大企业青睐的移动应用开发模式。
式,即截取用户视图所得到截图与用户视图相同。系统截图为通过移动应用程序进行截图,
通常为一种动态截图方式,即截取用户视图所得到截图可以与用户视图存在差异。
Native UI(原生视图),Html2canvas无法对Native UI进行截图。
发明内容
截图方法。
中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机
指令,使得该计算机设备执行上述提供的页面截图方法。
的内容与用户视图中包含的内容存在差异。实施本申请实施例,可以高效地实现对原生视
图的动态截图。
附图说明
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
具体实施方式
本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
混合应用,该混合应用包括地图应用(例如腾讯地图)、与地图应用关联的应用(例如打车应
用)、多媒体应用等等,该多媒体应用包括音乐应用(例如QQ音乐)和视频应用(例如腾讯视
频),此处的终端设备可以为以下任一种:智能手机、平板电脑、膝上计算机等便携式设备,
以及台式电脑等等。
图应用,目标页面可以为导航页面(例如导航结束页面、导航规划页面、导航开始页面等
等),当用户想要分享行程时,可以通过导航页面触发终端设备执行下述步骤S11,此处的导
航页面即为一种存在截图需求的页面。
频播放页面即为一种存在截屏需求的页面。
原生视图,原生视图中包含地图区,该地图区显示有当前次导航的路线信息和地图底图(示
例性地,此处的地图区可参见图2a~图2c中显示的地图区)。其中,该导航页面可以包括导
航结束页面、导航规划页面、导航开始页面等等。
航模式,例如:驾车导航、步行导航、骑行导航等等导航模式。以驾车导航模式为例,用户可
以通过地图应用输入当前次导航的起点和终点,规划驾驶导航路线,并沿着规划的驾驶导
航路线行驶。后续,当终端设备检测到当前次导航结束时,可以显示地图应用对应的导航结
束页面,该导航结束页面显示的用户视图中包含网页视图和上述原生视图,网页视图包括
以下任一种或者多种:标题栏、码表区和评分区,该标题栏包括视图分享按钮,码表区包括
导航记录信息。
图所示。
面可以如图2b和图2c所示。
面,该用户视图中的原生视图包含播放区,该播放区显示有播放区底图和当前播放的多媒
体文件的多媒体信息。示例性地,假设多媒体应用为视频播放应用,多媒体播放页面可以如
图2d中的左图所示。
享诉求,则可以针对视图分享按钮输入触发操作。当终端设备检测到针对视图分享按钮的
触发操作(可以理解为截屏触发操作)时,可以对目标页面进行截图处理,从而得到用户视
图对应的截屏视图。其中,上述触发操作可以为针对视图分享按钮的点击、按压、滑动、语音
等操作,对此不作具体限定。
图像用于触发与目标对象建立关联关系,示例性地,上述目标对象例如可以一个机构、商
家、个人或者企业,与目标对象建立关联关系可以为:关注目标对象的公众号、添加目标对
象为会话联系人等等;该引导关注对象例如可以包括:用于添加目标对象为微信好友的二
维码、关注目标对象的微信公众号的二维码等等。
前次导航的行程时,可以点击视图分享按钮20,进一步地,终端设备可以响应用户针对视图
分享按钮20的点击,对导航结束页面进行截图处理,得到并显示用户视图对应的截屏视图,
截屏视图可包括地图区、码表区和目标下载引导图像,该目标下载引导图像用于触发下载
地图应用,目标下载引导图像例如可以包括下载地图应用的二维码,任何用户可以通过自
身终端设备识别该二维码快速下载地图应用。
按钮、视图分享按钮20)、地图区(路线、起终点、地图底图)、码表区(包含用户实时数据(即
当前次导航的导航记录信息))、评分区(可以与用户产生交互)。图2a中的右图为截屏视图,
即用户触发截屏得到的图片,相对于用户视图而言,地图区、码表区不变,底部替换为显示
有目标下载引导图像的下载区域,并移除了标题栏。
备检测到针对导航规划路线的目标端点的分享操作时,对导航规划页面进行截图处理,得
到用户视图对应的截屏视图,该截屏视图中包含目标端点对应目标对象的引导关注图像,
该目标端点为上述起点或者终点中任一端点。或者,在一个实施例中,结合实际业务需求,
此处的截屏视图除了可以包含目标端点对应目标对象的引导关注图像,还可以包含目标下
载引导图像,对此不作具体限定。
基(八卦岭店)”的公众号,则可以长按终点所在的图像区域,触发显示终点对应的对象分享
按钮21。进一步地,用户点击对象分享按钮21,终端设备响应用户针对对象分享按钮21的点
击,对导航规划页面进行截图处理,得到并显示用户视图对应的截屏视图,该截屏视图包括
引导关注图像22。
号,建立与商户“肯德基(八卦岭店)”的关联关系。从以上内容可知,此示例中的终点即为上
述目标端点,商户“肯德基(八卦岭店)”即为上述目标对象,用户针对对象分享按钮21输入
的点击操作即为上述针对导航规划路线的目标端点的分享操作。
点或者终点对应目标对象的资源信息(例如公众号)时,同样可以采用与上述导航规划页面
相似的截图方式,对导航规划页面进行相似的截图处理,得到用户视图对应的截屏视图,该
截屏视图中包含导航路线的起点或者终点对应目标对象的引导关注图像。
按钮的触发操作(即截屏触发操作),对导航规划页面进行截图处理,得到并显示用户视图
对应的截屏视图,示例性地,针对导航规划页面的截图处理过程可以参见图2c所示。
像,则该目标对象为多媒体文件的创建用户(例如视频的发布用户)。
后,终端设备可以对视频播放页面进行截图处理,从而得到用户视图对应的截屏视图,该截
屏视图包括引导关注图像24,该引导关注图像24包含:表征“XX机哥”在视频播放应用中账
号信息的扫码图像(即二维码)。进一步地,任何用户均可以通过识别该扫码图像快速地在
视频播放应用中关注“XX机哥”,或者添加“XX机哥”为视频播放应用中的好友。从以上内容
可知,此示例中的“XX机哥”可以理解为上述目标对象。
体的应用需求进行设计,本申请对此不作具体限定。
待推送地址,并触发向待推送地址对应的接收端发送截屏视图。其中,待推送地址可以包括
以下任一种或者多种:会话群组、目标会话用户和用户的内容分享平台(例如微信朋友圈)。
钮对应一种分享方式,例如图中“社交应用”、“朋友圈”、“保存到相册”和“上传”对应的按
钮。当用户想要将截屏视图分享至社交应用的目标会话用户时,用户点击“社交应用”对应
的按钮,终端设备跳转至社交应用对应的会话列表页面,用户可以在会话列表页面中选取
目标会话用户作为待推送地址,并触发终端设备向待推送地址对应的接收端发送截屏视
图。后续,目标会话用户可以通过社交应用查看该截屏视图。
存时,可以点击“保存到相册”对应按钮时,终端设备可以将截屏视图保存至本地相册。
为地图应用,目标页面为导航结束页面,用户发现当前次导航的导航路线有误,可通过终端
设备得到上述截屏视图之后,点击“上传”对应的按钮,触发终端设备将截屏视图发送至混
合应用对应的后台服务器,后台工作人员可以查看截屏视图,对本次导航路线有误的情况
进行处理。
含的内容与用户视图中包含的内容存在差异。采用这样的方式,可以高效地实现对原生视
图的动态截图。
技术构建的Web应用,本申请中H5采用了其狭义概念。在用户通过混合应用打开目标页面
时,Native端会初始化一个WebView(浏览器组件)加载用户视图,但由于动态截图场景下,
用户视图和截屏视图是不一样的,如果Native直接对用户视图做截屏,不能达到效果;如果
在截屏时将用户视图替换为截屏视图,截屏结束再还原回去,会造成视觉上的闪烁,用户体
验较差。
到用户视图对应的截屏视图,该隐藏视图中包含的内容与截屏视图中包含的内容相同。示
例性地,方式1的截图过程可参见图3a所示。
图。截屏视图与用户视图解耦,截屏视图的样式可以任意定制,但由于需要分别单独加载用
户视图和隐藏视图,带来了性能上的开销。
窗之外的区域,用户虽然看不到,但实际上已经加载在DOM树内。用户打开混合应用的目标
页面时,终端设备加载目标页面,在加载目标页面的过程中,在可视区域渲染用户视图,在
离屏区域渲染隐藏视图(该隐藏视图与截屏视图保持一致)。基于此,本申请实施例提出了
另一种截图方式,即以下方式2。其中,DOM为文档对象模型,是HTML和XML文档的编程接口,
定义了访问和操作HTML文档的标准方法。
视图在目标页面中的坐标信息,调用混合应用对应的H5端将坐标信息发送至混合应用对应
的Native端,并通过Native端根据坐标信息对目标页面进行截图处理,得到用户视图对应
的截屏视图。其中,二维图像一般为矩形,该隐藏视图的坐标信息可以为隐藏视图对应矩形
图像区中对角线两个顶点(如图3b中的顶点A和顶点B)的坐标,也可以为矩形图像区4个顶
点的坐标,对此不作具体限定。
在目标页面中截取坐标信息对应坐标范围内的目标图像,将目标图像确定为用户视图对应
的截屏视图。示例性地,方式2的截图过程可参见图3b所示。
目标页面,得到截取页面图像,并根据坐标信息对截取页面图像进行裁剪,以确定用户视图
对应的截屏视图。
屏,用户打开目标页面时就会同时渲染用户视图和隐藏视图,相对于按需加载而言,必然存
在一定的资源浪费。
图,对离屏区不作渲染,目标页面加载完成后,可视区显示有用户视图,离屏区显示的内容
为空。基于此,本申请实施例提出了又一种截图方式,即以下方式3。
的Native端,以触发Native端在离屏区中加载隐藏视图,获取隐藏视图在目标页面中的坐
标信息,调用H5端将坐标信息发送至Native端,通过Native端根据坐标信息对目标页面进
行截图处理,以确定用户视图对应的截屏视图。采用这样的方式,可以在存在截图需求时,
渲染隐藏视图,实现按需加载。
地,H5端可以调用Native端的能力并获得回调结果,也可以接收Native端发出的事件;
Native端可以向H5端发送事件以通知状态的改变,也可以直接调用JavaScript window下
的全局函数。其中,JsBridge在混合应用中提供了JavaScript调用Native代码的能力,实现
了H5端与Native端的双向通信。这种情况下,基于JsBridge技术,对上述方式1进一步地细
化的实施过程可以参见图4(以下称这种截图方案为双WebView双视图的截图方案)所示,具
体如下步骤:
定制。但由于Native端需要加载两个WebView,带来了性能上的开销。
WebView时就会同时渲染用户视图与隐藏视图。单WebView双视图的截图方案相对比于双
WebView双视图的截图方案,可以解决Native端需要加载两个WebView,带来的性能上的开
销,除此以外,由于单WebView双视图的截图方案属于全量加载,存在一定的资源浪费,本申
请实施例可以对单WebView双视图的截图方案进行优化,可以通过动态插入DOM的方法,仅
在触发截屏时才渲染隐藏视图,实现按需加载。
Native端的截屏能力实现动态截图,得到截屏视图,一方面,可以解决现有通过
Html2canvas无法对Native UI进行截屏的问题。
源限制,保存图片资源的服务器必须设置跨域资源共享,否则无法被Html2canvas绘制,而
一些图片保存在第三方服务器,如微信头像、新闻插图,那么在通过Html2canvas实现动态
截屏之前,需要配置服务器代理转发,实现麻烦。与Html2canvas实现动态截屏的方案相比,
本申请提出的截图方案不依赖于Canvas,不受到同源限制,对图片服务器无特殊要求,有利
于混合应用的开发难度。
序(包括程序代码)。
目标对象建立关联关系。
生视图,所述原生视图中包含地图区,所述地图区显示有当前次导航的路线信息和地图底
图。
一种或者多种:标题栏、码表区和评分区,所述标题栏包括视图分享按钮,所述码表区包括
导航记录信息。
的目标端点的分享操作时,对所述目标页面进行截图处理,得到所述用户视图对应的截屏
视图,所述截屏视图中包含所述目标端点对应目标对象的引导关注图像,所述目标端点为
所述起点或者终点中的任一端点。
媒体信息。
户视图对应的截屏视图。
的接收端发送所述截屏视图。
相同。
用户视图对应的截屏视图。
容相同。
中包含的内容与用户视图中包含的内容存在差异。实施本申请实施例,可以高效地实现对
原生视图的动态截图。
信接口74。处理器70、存储装置71、输出设备72、输入设备73和通信接口74。之间可以交互数
据,由处理器70实现相应的页面截图功能。
memory),例如快闪存储器(flash memory),固态硬盘(solid‑statedrive,SSD)等;存储装
置71还可以包括上述种类的存储器的组合。
是由CPU和GPU的组合。在终端设备中,可以根据需要包括多个CPU和GPU进行相应的页面截
图。
航规划路线的目标端点的分享操作等等)。
目标页面进行截图处理,得到所述用户视图对应的截屏视图;显示所述截屏视图,所述截屏
视图中包含的内容与所述用户视图中包含的内容存在差异。
目标对象建立关联关系。
生视图,所述原生视图中包含地图区,所述地图区显示有当前次导航的路线信息和地图底
图。
一种或者多种:标题栏、码表区和评分区,所述标题栏包括视图分享按钮,所述码表区包括
导航记录信息。
目标端点的分享操作时,对所述目标页面进行截图处理,得到所述用户视图对应的截屏视
图,所述截屏视图中包含所述目标端点对应目标对象的引导关注图像,所述目标端点为所
述起点或者终点中的任一端点。
媒体信息。
视图对应的截屏视图。
的接收端发送所述截屏视图。
相同。
户视图对应的截屏视图。
容相同。
的内容与用户视图中包含的内容存在差异。实施本申请实施例,可以高效地实现对原生视
图的动态截图。
质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、
光盘、只读存储记忆体(Read‑Only Memory,ROM)或随机存储记忆体(Random Access
Memory,RAM)等。
要求所作的等同变化,仍属于发明所涵盖的范围。