二维码生成方法、装置、计算机设备及存储介质与流程

文档序号:31875970发布日期:2022-10-21 21:38阅读:107来源:国知局
二维码生成方法、装置、计算机设备及存储介质与流程

1.本技术涉及二维码技术领域,特别涉及二维码生成方法、装置、计算机设备及存储介质。


背景技术:

2.在日常生活中,二维码的应用日渐普及,用于生成和管理二维码的应用程序也越来越多。
3.在相关技术中,应用程序中的二维码生成及展示功能通常是通过二维码组件来实现。其中,对于不同的应用程序,其二维码的应用需求可能不同,相应的,也就需要开发不同的二维码组件。
4.然而,上述相关技术中,不同应用需求的应用程序,需要开发不同的二维码组件,从而影响了具有二维码生成及展示功能的应用程序的开发效率。


技术实现要素:

5.本技术实施例提供了一种二维码生成方法、装置、计算机设备及存储介质,可以提高对具有二维码生成及展示功能的应用程序的开发效率,该技术方案如下:
6.一方面,提供了一种二维码生成方法,所述方法包括:
7.获取输入参数,所述输入参数包含用于生成二维码的渲染内容、目标数据类型以及目标渲染类型;所述目标数据类型用于指示所述渲染内容在二维码中的格式,所述目标渲染类型用于指示所述二维码的类型;
8.基于所述输入参数调用二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码;
9.展示所述二维码。
10.另一方面,提供了一种二维码展示装置,所述装置包括:
11.参数获取模块,用于获取输入参数,所述输入参数包含用于生成二维码的渲染内容、目标数据类型以及目标渲染类型;所述目标数据类型用于指示所述渲染内容在二维码中的格式,所述目标渲染类型用于指示所述二维码的类型;
12.二维码生成模块,用于基于所述输入参数调用二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码;
13.二维码展示模块,用于展示所述二维码。
14.在一种可能的实现方式中,所述目标数据类型是字节数组、字符串或者base64图片字符串;
15.所述目标渲染类型是图像类型或者画布类型。
16.在一种可能的实现方式中,所述二维码生成模块,包括:
17.格式转换子模块,用于响应于所述渲染内容的格式与所述目标数据类型指示的格式不同,通过所述二维码组件将所述渲染内容的格式转换为所述目标数据类型指示的格
式;
18.二维码生成子模块,用于通过所述二维码组件,基于格式转换后的所述渲染内容,以及所述目标渲染类型生成所述二维码。
19.在一种可能的实现方式中,所述格式转换子模块用于响应于所述目标数据类型指示的格式为字节数组,所述渲染内容的格式为字符串,所述二维码组件将所述渲染内容由字符串的格式转换为字节数组的格式。
20.在一种可能的实现方式中,所述参数获取模块,用于通过子程序获取所述输入参数,所述子程序是依赖于宿主程序执行的应用程序;
21.所述二维码生成模块,用于通过所述子程序调用所述宿主程序中安装的所述二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码。
22.在一种可能的实现方式中,所述输入参数包括有效时长;所述装置还包括:
23.取消展示模块,用于响应于所述二维码的展示时长达到有效时长,取消展示所述二维码。
24.在一种可能的实现方式中,所述装置还包括:
25.过期提示展示模块,用于响应于所述二维码的展示时长达到所述有效时长,展示过期提示,所述过期提示用于提示所述二维码已过期。
26.在一种可能的实现方式中,所述装置还包括:
27.截屏次数获取模块,用于获取指定时间段内基于所述二维码的截屏次数;
28.所述参数获取模块,用于响应于所述截屏次数未达到截屏次数阈值,基于所述输入参数调用所述二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码。
29.在一种可能的实现方式中,所述二维码展示模块,用于响应于检测到截屏操作,展示截屏提示,所述截屏提示用以指示所述截屏次数阈值。
30.在一种可能的实现方式中,所述装置还包括:
31.亮度调整模块,用于响应于展示所述二维码,将所述二维码展示界面的亮度调整为亮度阈值。
32.在一种可能的实现方式中,所述装置还包括:
33.扫码记录获取模块,用于从后台服务器中获取对所述二维码的扫码记录;
34.扫码记录展示模块,用于展示所述扫码记录,所述扫码记录用以指示扫码端对所述二维码的扫码结果,所述扫码结果指示扫码成功,或者,扫码失败。
35.在一种可能的实现方式中,所述装置还包括:
36.弹框展示模块,用于响应于未开启消息订阅功能,展示消息订阅弹框,所述消息订阅弹框用于提示是否开启所述消息订阅功能。
37.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述二维码生成方法。
38.另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述二维码生成方法。
39.另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的二维码生成方法。
40.本技术提供的技术方案可以包括以下有益效果:
41.通过基于选择操作从多种数据类型中选择一种作为目标数据类型,基于用户的选择操作从多种目标渲染类型中选择一种作为目标渲染类型,并在获取到渲染内容后,通过同一二维码组件基于对应于不同的客户端的目标数据类型和目标渲染类型生成二维码,从而使得在生成二维码时,可以通过兼容于各个平台的同一二维码组件,生成对应于不同平台上二维码,从而提高了对具有二维码生成及展示功能的应用程序的开发效率。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
43.图1示出了本技术一示例性实施例提供的二维码生成方法所使用的系统结构的示意图;
44.图2示出了本技术一示例性实施例提供的二维码生成方法的流程图;
45.图3示出了本技术一示例性实施例提供的二维码生成方法的流程图;
46.图4示出了本技术一示例性实施例示出的目标数据类型为字节数组时生成的二维码的示意图;
47.图5示出了本技术一示例性实施例示出的目标数据类型为字符串时生成的二维码的示意图;
48.图6示出了本技术一示例性实施例示出的目标数据类型为base64图片字符串时生成的二维码的示意图;
49.图7示出了本技术一示例性实施例示出的扫码回调的时序图;
50.图8示出了本技术一示例性实施例示出的扫码成功提示以及扫码失败提示的界面示意图;
51.图9示出了本技术一示例性实施例示出的前端扫码轮询逻辑的示意图;
52.图10示出了本技术一示例性实施例示出的扫码记录的示意图;
53.图11示出了本技术一示例性实施例示出的失效提示信息的示意图;
54.图12示出了本技术一示例性实施例示出的防截屏功能的示意图;
55.图13示出了本技术一示例性实施例示出的城市码生成过程的示意图;
56.图14示出了本技术一示例性实施例提供的二维码展示装置的方框图;
57.图15示出了本技术一示例性实施例示出的计算机设备的结构框图;
58.图16示出了本技术一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
59.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
60.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
61.本技术实施例提供了一种二维码生成方法,可以提高对具有二维码生成及展示功能的应用程序的开发效率。为了便于理解,下面对本技术涉及的几个名词进行解释。
62.1)二维码(2-dimensional barcode)
63.二维码,又称二维条码,也称为qr code(quick response code),是在一维条码的基础上扩展出的一种具有可读性的条码。设备扫描二维条码,通过识别条码的长度和宽度中记载的二进制数据,可以获得其中包含的信息。
64.二维码一般是用某种特定的几何图形按一定规律在平面(二维方向上)分布的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理,它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。在许多种类的二维条码中,常用的码制有:data matrix,maxi code,aztec,qr code,vericode,pdf417,ultracode,code 49,code 16k等。
65.2)小程序与h5(hyper text markup language5,超文本标记语言的第五次修订版本)
66.小程序(mini program)是一种不需要下载安装即可使用的应用程序。为了向用户提供更多样化的业务服务,开发者可为终端的应用(例如即时通信应用、购物应用、邮件应用等)开发相应的小程序,该小程序可作为子应用被嵌入至终端的应用中,通过运行应用内的子应用(即对应的小程序)能够为用户提供相应的业务服务。小程序的运行环境并非完整的浏览器,因为小程序的开发过程中只用到一部分h5技术;h5是一种技术,依附的外壳是浏览器,即h5的运行环境是浏览器,app的web-view组件,以及小程序提供的web-view组件都可以打开h5页面。
67.图1示出了本技术一示例性实施例提供的二维码生成方法所使用的系统结构的示意图,如图1所示,该系统包括:服务器110以及终端120。
68.其中,上述服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,也可以是区块链网络上的节点服务器。
69.上述终端120为具有界面显示功能的终端,比如,终端120可以是智能手机、平板电脑、电子书阅读器、智能眼镜、智能手表、智能电视、智能车载设备、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播
放器、膝上型便携计算机和台式计算机等等。
70.可选的,上述系统中包含一个或者多个服务器110,以及多个终端120。本技术实施例对于服务器110和终端120的个数不做限制。
71.终端以及服务器通过通信网络相连。可选的,通信网络是有线网络或无线网络。
72.可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(hyper text mark-up language,html)、可扩展标记语言(extensible markup language,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(secure socket layer,ssl)、传输层安全(transport layer security,tls)、虚拟专用网络(virtual private network,vpn)、网际协议安全(internet protocol security,ipsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。本技术在此不做限制。
73.图2示出了本技术一示例性实施例提供的二维码生成方法的流程图,该方法由计算设备执行,该计算机设备可以实现为终端,该终端可以是图1所示的终端,如图2所示,该二维码生成方法包括以下步骤:
74.步骤210,获取输入参数,该输入参数包含用于生成二维码的渲染内容、目标数据类型以及目标渲染类型;该目标数据类型用于指示渲染内容在二维码中的格式,该目标渲染类型用于指示二维码的类型。
75.其中,该目标数据类型是目标数据的至少两种数据类型中的一种。该目标数据的至少两种数据类型中,各个数据类型不同,不同的数据类型可以适应于不同的客户端。
76.生成二维码所需的目标数据是基于渲染内容生成的数据,该目标数据类型是基于用户的选择操作,从目标数据的至少两种数据类型中获取的。
77.该目标渲染形式二维码的至少两种渲染形式中的一种。
78.基于同一数据类型以及渲染内容生成的二维码的结果是相同的,也就是说,通过对该二维码的扫描所能获得的信息内容或者和触发的界面变化是相同的,只是基于二维码对应的渲染类型的不同,通过不同的绘制方式对二维码进行绘制,以满足不同客户端场景中的不同渲染方式,以使得二维码适应于不同的客户端。
79.目标渲染类型是基于用户的选择操作,从二维码的至少两种渲染形式中获取的。
80.在一种可能的实现方式中,在不同的场景下,渲染内容的获取途径不同,示意性的,该渲染内容可以是将用户的输入内容获取为渲染内容,或者,该渲染内容可以是基于用户的输入内容获取的对应于该输入内容的二维码生成数据。
81.步骤220,基于输入参数调用二维码组件,该二维码组件基于目标数据类型以及目标渲染类型生成包含渲染内容的二维码。
82.示意性的,该二维码组件是通过对weapp.qrcode.js代码项目进行优化后的组件,可以兼容多个客户端,比如,该多个客户端可以是h5端和小程序端,用于基于输入参数生成相应的二维码。
83.步骤230,展示该二维码。
84.综上所述,本技术实施例提供的二维码生成方法,通过基于选择操作从多种数据类型中选择一种作为目标数据类型,基于用户的选择操作从多种目标渲染类型中选择一种作为目标渲染类型,并在获取到渲染内容后,通过二维码组件,基于对应的目标数据类型和目标渲染类型生成二维码,从而使得在生成二维码时,对于数据类型和渲染类型的需求不同的应用程序,可以通过相同的二维码组件生成各自需要的二维码,从而提高了二维码组件的适用性,进而提高了对具有二维码生成及展示功能的应用程序的开发效率。
85.图3示出了本技术一示例性实施例提供的二维码生成方法的流程图,该方法由计算设备执行,该计算机设备可以实现为终端或服务器,该终端或服务器可以是图1所示的终端或服务器,如图3所示,该二维码生成方法包括以下步骤:
86.步骤310,获取输入参数,该输入参数包含用于生成二维码的渲染内容、目标数据类型以及目标渲染类型;该目标数据类型用于指示渲染内容在二维码中的格式,该目标渲染类型用于指示二维码的类型。
87.在一种可能的实现方式中,该目标数据类型是字节数组,字符串或者base64图片字符串。也就是说,该目标数据类型可以基于用户的选择操作确定的字节数组,字符串以及base64图片字符串中的一种。
88.其中,字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位,数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
89.字符串,简称串,在数据结构中,字符串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说字符串是一个有穷的字符序列。
90.二维码的渲染类型包括图像类型(image)以及画布类型(canvas)。该目标显然类型是图像类型或者画布类型。
91.当目标数据类型以及渲染内容相同时,基于上述两种渲染类型得到的二维码的结果是相同的,只是采用的渲染方式不同,其中,图像类型(image)的绘制过程更为简单,而画布类型(canvas)则可以实现绘制不同颜色的二维码的需求。
92.在一种可能的实现方式中,目标数据类型会影响渲染内容的初始数据类型,当目标数据类型为字节数组或字符串时,该渲染内容的初始数据类型为字符串;当目标数据类型为base64图片字符串时,该渲染内容的初始数据类型为base64图片字符串。
93.在一种可能的应用场景中,该base64图片字符串类型的渲染内容,是基于用户的查询指令从后台查询获得的用于生成二维码的base64图片字符串。该用户查询指令可以是用户输入的关键词。
94.当应用场景为小程序场景时,在一种可能的实现方式中,该二维码组件可以是对应于小程序进行设置的;或者,在另一种可能的实现方式中,该二维码组件可以是独立于小程序设置在宿主程序中的,也就是说,宿主程序中的小程序,在具有生成二维码的需求时,都可以调用宿主程序中的二维码组件生成二维码,以减少二维码组件的冗余部署,减少对小程序的资源占用。在一种可能的实现方式中,该获取输入参数实现为,通过子程序获取输入参数,该子程序是依赖于宿主程序执行的应用程序;
95.基于输入参数调用二维码组件,该二维码组件基于目标数据类型以及目标渲染类
型生成包含渲染内容的二维码,包括:通过子程序调用宿主程序中安装的二维码组件,该二维码组件基于目标数据类型以及目标渲染类型生成包含渲染内容的二维码。
96.步骤320,基于输入参数调用二维码组件,该二维码组件基于目标数据类型以及目标渲染类型生成包含渲染内容的二维码。
97.其中,当渲染内容的初始数据类型不同时,即响应于渲染内容的格式与目标数据类型指示的格式不同,二维码组件将渲染内容的格式转换为目标数据类型指示的格式;
98.该二维码组件基于格式转换后的渲染内容,以及目标渲染类型生成二维码。
99.示意性的,当目标数据类型为字节数组,渲染内容的初始数据类型为字符串时,基于目标数据类型,目标渲染类型以及渲染内容生成二维码的过程可以实现为:
100.响应于目标数据类型指示的格式为字节数组,该渲染内容的格式为字符串,该二维码组件,将渲染内容由字符串的格式转换为字节数组的格式,之后,二维码组件基于字节数组格式的渲染内容,以及目标渲染类型生成二维码。图4示出了本技术一示例性实施例示出的目标数据类型为字节数组时生成的二维码的示意图,如图4所示,该二维码410是基于初始数据类型为字符串的渲染内容“abc123”,在生成二维码时,将“abc123”转化为字节数组[1,223,232,23,232]之后,依据转化后的字节数组生成二维码。
[0101]
其中,字节数组(byte数组)可以在需要容纳更多二维码内容时,以更少的二维码的信息量来渲染二维码,但对该二维码的扫码结果是字节数组转字符串的数据。
[0102]
对于扫码端而言,响应于目标数据类型为字节数组,扫码端对二维码进行扫描,获得扫码结果的过程包括:
[0103]
将渲染内容的数据类型由字节数组转换为字符串;
[0104]
基于数据类型为字符串的渲染内容生成扫描结果。
[0105]
当目标数据类型为字符串,该渲染内容的初始数据类型为字符串时,在基于输入参数调用二维码组件生成二维码时,直接基于数据类型为字符串的渲染内容,以及目标渲染类型生成二维码。示意性的,图5示出了本技术一示例性实施例示出的目标数据类型为字符串时生成的二维码的示意图,如图5所示,该二维码510是基于初始的渲染内容“abc123”,直接生成二维码。
[0106]
其中,目标数据类型为字符串的使用场景可以是前端渲染二维码场景,扫码的结果即为输入,即如果输入为“abc123”,那么扫码端扫码之后即能得到“abc123”,以降低前端的处理压力。
[0107]
对于扫码端而言,响应于目标数据类型为字符串,扫码端基于字符串格式的渲染内容生成扫码结果。
[0108]
当目标数据类型为base64图片字符串时,渲染内容的初始数据类型为base64图片字符串,在基于输入参数调用二维码组件生成二维码时,基于数据类型为base64图片字符串的渲染内容,以及目标渲染类型生成二维码。示意性的,图6示出了本技术一示例性实施例示出的目标数据类型为base64图片字符串时生成的二维码的示意图,如图6所示,该二维码610是基于“abc123”获得的base64图片字符生成的二维码。
[0109]
其中,目标数据类型为base64图片字符串可以应用于为了兼容后台直接返回base64图片字符串,以减少前端压力的场景,且当有复杂场景导致目标数据类型为字符串以及目标数据类型为字节数据生成二维码的方式失败时,可以利用目标数据类型为base64
图片字符串的形式生成二维码图片。
[0110]
步骤330,展示二维码。
[0111]
在一种可能的实现方式中,在二维码展示界面中展示二维码,该二维码展示界面可以是h5端的二维码展示界面,或者,该二维码展示界面可以是小程序端的二维码展示界面,也就是说,该二维码可以对应于h5端生成的,或者,该二维码也可以是对应于小程序端生成的。
[0112]
其中,h5端与小程序端可以分别对应于不同的输入类型和/或渲染类型,在生成各个客户端对应的二维码时,可以基于各个客户端对应的目标数据类型以及目标渲染类型通过同一个二维码组件,生成对应于各个客户端的二维码。在一种可能的实现方式中,在生成二维码时,可以对应于不同的客户端进行目标数据类型以及目标渲染类型的提示,比如,小程序端对应的数据类型为字节数组,渲染类型为图像类型,则在对应于小程序端生成二维码时,提示将目标数据类型设置为字节数组,将目标渲染类型设置为图像类型。
[0113]
在一种可能的实现方式中,一个客户端对应的目标数据类型可以有多个,同时,一个客户端对应的目标渲染类型可以有多个,在这种情况下,可以基于该客户端的类型,将其对应的可选的数据类型以及可选的渲染类型设置为可选控件,将其不兼容的数据类型以及不兼容的渲染类型设置为禁选控件,以使得用户可以基于可选控件以及禁选控件确定用于生成当前客户端兼容的二维码的数据类型以及渲染类型。
[0114]
在一种可能的实现方式中,在二维码展示界面中展示二维码的过程中,获取二维码的扫码状态,该扫码状态包括二维码被扫描,或者,二维码未被扫描。
[0115]
在一种可能的实现方式中,响应于二维码被扫描,从后台服务器中获取对二维码的扫码记录;
[0116]
在二维码展示界面中展示该扫码记录,该扫码记录用以指示扫码端对二维码的扫码结果,扫码结果指示扫码成功,或者,扫码失败。
[0117]
其中,该扫码记录实现为扫码回调,即当扫码端扫描了该二维码之后,让展示二维码的客户端得到并显示回执结果,以通知展示二维码的客户端,该二维码已被扫描,且扫码状态指示扫码成功或者扫码失败。以小程序为例图7示出了本技术一示例性实施例示出的扫码回调的时序图,如图7所示,以指定客户端为小程序710为例,当小程序710展示有二维码时,小程序710,小程序后台服务器720,机具730与机具后台服务器740进行轮询,以获取二维码的扫码状态,其中,机具后台服务器740是指扫码端(机具730)对应的服务器,扫码端可以实现为具有扫码功能的终端。当小程序710通过小程序后台服务器720以及机具730从机具后台服务器740中获取到的扫码状态为已扫码时,向码规则后台服务器740传递二维码,以使得码规则后台服务器750对二维码进行验码(二维码校验),基于验码结果指示机具后台服务器740进行业务处理(若校验成功则进行业务处理,若校验失败则不进行业务处理);基于机具后台服务器730的业务处理结果,向小程序710返回回调结果,该回调结果用以指示该二维码已被扫描,小程序710通过机具730向机具后台服务器740请求扫码结果,机具后台服务器740向小程序返回回调结果,该回调结果指示小程序710展示扫码成功提示或者扫码失败提示。图8示出了本技术一示例性实施例示出的扫码成功提示以及扫码失败提示的界面示意图,如图8所示,图8中的(a)部分对应于扫码失败提示信息,用以指示二维码解码失败、网络延迟等原因造成的二维码信息获取失败;图8中的(b)部分对应于扫码成功
提示信息,用以指示经过扫码以及解码后,二维码信息获取成功,可选的,该二维码成功提示信息还可以包括扫码信息,该扫码信息可以包括二维码被扫描的时间,地点等信息。
[0118]
其中,该小程序后台服务器与机具后台服务器是同一服务器,或者,该小程序后台服务器与机具后台服务器不是同一服务器,本技术对此不进行限制;当两者的为同一服务器时,该服务器实现为后台服务器,当两者不是同一服务器时,该机具服务器实现为后台服务器。
[0119]
当该二维码用于进行界面跳转,或者用于开启消息订阅能力时,在一种可能的实现方式中,在该扫码结果指示扫码成功时,该扫码结果包括还可以包括跳转界面或消息订阅的弹窗等等。当该扫码结果指示跳转界面或消息订阅的弹窗信息时,以该二维码用于开启消息订阅能力为例,图9示出了本技术一示例性实施例示出的前端扫码轮询逻辑的示意图,如图9所示,小程序中预先设置后轮询时间,超时参数以及回调请求的函数,在开启轮询查询后:
[0120]
步骤901,小程序、小程序后台服务器、机具以及机具后台服务器之间轮询扫码状态度,判断二维码是否被扫;若是,则执行步骤902,否则继续轮询的过程;
[0121]
步骤902,确定二维码被扫,进入指定的回调模板;
[0122]
确定二维码被扫可以体现为获取到正确的请求结果,该回调模板可以实现为如图8所示的页面。
[0123]
步骤903,用户点击“跳回”控件;
[0124]
该“跳回”可以是回调模中用于返回指定界面的控件,比如如图8的(a)部分示出的“返回二维码”,或者,图8的(b)部分示出的“返回首页”。
[0125]
步骤904,查询是否手动关闭了订阅消息开关,若是,则执行步骤905,否则结束;
[0126]
步骤905,判断自动开启订阅消息开关的功能是否被开启,若是,执行步骤908,否则,执行步骤906;
[0127]
步骤906,判断是否跳转到手动打开消息订阅开关的界面,若是,执行步骤907,否则结束;
[0128]
步骤907,跳转订阅消息设置界面;
[0129]
步骤908,判断是否有需要用户执行确定操作的模板id,若是,执行步骤909,否则,执行步骤910;
[0130]
步骤909,跳转订阅,弹起消息订阅的弹框;
[0131]
步骤910,返回模板消息,该模板消息可以指示指定模板id已被用户设为永久允许/取消。
[0132]
响应于扫码结果指示扫码成功,且二维码用于触发后续的通知消息,该方法还包括:
[0133]
响应于未开启消息订阅功能,展示消息订阅弹框,该消息订阅弹框用于提示是否开启消息订阅功能;也就是说,当前端扫码轮询逻辑的执行结果为跳转订阅,弹起消息订阅的弹框时,该扫码结果用以指示亮码端(比如小程序)在二维码展示界面中显示消息订阅的弹框,图10示出了本技术一示例性实施例示出的扫码记录的示意图,如图10所示,该扫码结果用以指示小程序在二维码展示界面中展示包含“口罩预约结果通知”的消息提示信息的消息订阅弹框1010,在该场景中,用户向扫码端出示该二维码,且扫码端对该二维码进行扫
描后,确定用户登记预约口罩,口罩预约成功时,会向该用户的终端发送口罩预约结果,此时,需要用户订阅“口罩预约结果通知”的消息提示信息,才能接收到该通知消息,因此,当二维码被扫描时候,若未开启消息订阅功能,则在二维码展示界面中展示消息订阅弹框,以提醒用户开启消息订阅功能。
[0134]
示意性的,开启消息订阅功能的过程可以通过以下代码实现:
[0135][0136][0137]
上述代码中,当后端返回前后端双方约定好的数据结构,templatetype表示显示哪个模板,当为0时表示直接返回结果,不显示模板;document可以自定义模板中的显示文字;当msgtmpl中subscribe为true时,则表示需要拉起消息订阅,tmplids为消息订阅的id。
[0138]
步骤340,响应于二维码的展示时长达到有效时长,取消展示二维码。
[0139]
在一种可能的实现方式中,输入参数包括有效时长,也就是说,该二维码对应设置有有效时长,该有效时长用以指示从生成二维码的时刻到二维码失效的时刻之间的时间长度,当二维码的展示时长处于有效时长内时,扫码端对该二维码进行扫描可以获得基于渲染内容生成的扫码结果,即扫码成功;而当二维码的展示时长处于有效时长之外时,扫码端对该二维码进行扫描则无法获取到基于渲染内容生成的扫码结果,即扫码失败。
[0140]
当该二维码的展示时长达到有效时长时,亮码端可以自动将该二维码隐去,以提醒用户二维码失效,避免用户的无效扫描导致的终端解码资源的浪费。
[0141]
该过程可以实现为:
[0142]
获取二维码的展示时长;
[0143]
响应于二维码的展示时长小于二维码的有效时长,二维码被扫描后,获得扫码结果;
[0144]
响应于二维码的展示时长大于二维码的有效时长,显示失效提示信息。
[0145]
其中,二维码的展示时长用以指示从生成二维码的时刻到当前时刻的时间长度。
[0146]
在一种可能的实现方式中,响应于二维码的展示时长达到有效时长,展示过期提示,该过期提示用于提示二维码已过期;
[0147]
上述过程可以实现为,响应于二维码的展示时长大于二维码的有效时长,刷新二维码显示界面,在二维码显示界面中显示失效提示信息;或者,响应于二维码的展示时长大于二维码的有效时长,二维码被扫描后,跳转到二维码过期展示界面,在二维码过期展示界面中显示失效提示信息。图11示出了本技术一示例性实施例示出的失效提示信息的示意图,如图11所示,该失效提示信息用以指示二维码的展示时长已超过该二维码的有效时长,同时,在该失效提示信息的显示界面中还显示有刷新控件1110,用以指示用户对该二维码进行刷新,以获得有效的二维码。
[0148]
在一种可能的实现方式中,该二维码对应有防截屏功能,以减少二维码信息的重复使用,避免用户的对二维码的违规使用,因此,在基于输入参数调用二维码组件,该二维码组件基于目标数据类型以及目标渲染类型生成包含渲染内容的二维码之前,该方法还包括:
[0149]
获取指定时间段内基于二维码展示的截屏次数;
[0150]
响应于截屏次数未达到截屏次数阈值,基于输入参数调用二维码组件,二维码组件基于目标数据类型以及目标渲染类型生成包含渲染内容的二维码。
[0151]
其中,该基于二维码的截屏次数可以实现为对二维码展示界面的截屏次数。在该截屏次数达到截屏次数阈值后,当用户有展示二维码的需求时,亮码端无法在二维码展示界面中进行二维码的展示。
[0152]
以该基于二维码的截屏次数实现为对二维码展示界面的截屏次数为例,在一种可能的实现方式中,获取该截屏次数的过程可以实现为,当用户打开展示有二维码的页面时,即,二维码展示界面中展示有该二维码时,前端开启截屏监听,以对二维码展示界面的截屏事件进行监听,当监听到有截屏事件发生时,前端将会把小程序的相关数据和用户数据发送给后台,以进行截屏次数判断。
[0153]
为了防止用户获取信息缺失,导致截屏误操作,在一种可能的实现方式中,响应于检测到截屏操作,在二维码展示界面中展示截屏提示,该截屏提示用以指示截屏次数阈值,以提醒用户二维码具有防截屏功能。
[0154]
以为小程序为例,图12示出了本技术一示例性实施例示出的防截屏功能的示意图,该功能由小程序与小程序后台交互执行,如图12所示,实现防截屏功能的过程包括:小程序1210(前端)监听到截屏事件时,向小程序后台1220发送查询请求,该查询请求包括小程序的相关数据和用户数据;小程序后台1220在接收查询请求之后,查询并存储截屏详情,并向小程序1210反馈截屏请求结果,该截屏请求结果可以包括二维码的被截屏次数阈值,以使得前端显示对应于当前二维码的防截屏提示信息1230;该防截屏提示信息1230中包括二维码的被截屏次数阈值提示。响应于小程序1210具有亮码请求(显示二维码的请求),向小程序后台1220发送亮码请求,小程序后台1220基于接收到的亮码请求,对当前二维码的被截屏次数与被截屏次数阈值的关系进行判断,若二维码的被截屏次数大于二维码的被截屏次数阈值(以截屏次数阈值为5次为例),向小程序1210反馈亮码请求失败信息,以使得小
程序1210显示亮码失败提示信息,即亮码失败;若二维码的被截屏次数小于二维码的被截屏次数阈值,小程序后台1220查询亮码相关数据,并将亮码相关数据发送给小程序1210,以使得小程序1210依据该亮码相关数据进行亮码,即亮码成功。
[0155]
示意性的,该指定时间段可以是几个小时,一天或者一周等,在指定时间段后重新开始对二维码的被截屏次数进行统计和亮码判断。比如,指定时间段为一天,被截屏次数阈值为5次,那么用户一天只能对二维码进行5次截屏操作,之后,小程序无法进行亮码;一天之后,小程序恢复亮码功能,并重新开始进行被截屏次数统计和亮码判断。
[0156]
为了提高扫码端的扫码成功率,在一种可能的实现方式中,响应于在二维码展示界面中展示二维码,将二维码展示界面的亮度调整为亮度阈值,以提高屏幕对比度。
[0157]
其中,该过程可以实现为,响应于在客户端展示二维码,对屏幕亮度进行监听,获取当前客户端的屏幕展示亮度的数值;
[0158]
响应于该屏幕展示亮度的数值小于亮度阈值,将屏幕展示亮度设置为亮度阈值。比如,当前屏幕展示亮度的数值为0.6,亮度阈值为0.8,则小程序可以通过调用亮度调节的api(application programming interface,应用程序接口),将屏幕展示亮度设置为0.8。
[0159]
在一种可能的实现方式中,响应于该屏幕展示亮度的数值大于亮度阈值,保持当前屏幕展示亮度不变。
[0160]
在一种可能的实现方式中,当客户端从二维码的显示界面跳转到其他界面时,将屏幕展示亮度的数值恢复为调节之前的屏幕展示亮度的数值,比如,调节后屏幕展示亮度的亮度值为0.8,当客户端从二维码的显示界面跳转到其他界面时,将屏幕展示亮度的亮度值恢复为0.6。
[0161]
在一种可能的实现方式中,该方法还包括:响应于接收到对生成的二维码的功能属性的设置操作,对二维码的功能属性进行设置,该二维码的功能属性包括防截屏属性,扫码回调属性以及亮度调节属性中的至少一种。
[0162]
也就是说,用户可以基于对二维码生成组件中的二维码的属性的设置,以实现二维码显示过程中的不同功能,示意性的,该二维码可以只具有显示的效果,或者,该二维码在进行显示的同时,具有亮度调节的功能,扫码回调功能以及防截屏功能中的至少一种,以满足二维码在不同使用场景下的不同设计需求。
[0163]
在本技术实施例中,通过优化了weapp.qrcode.js代码项目,实现了对h5和小程序的兼容,且能兼容byte数据和字符串的输入方式,由于byte数据相比于字符串能容纳更多二维码内容,能以更少的二维码的信息量来渲染二维码;能够提高二维码相关项目开发效率,因此,本技术提供的二维码组件不仅能加快二次开发的速度,且能作为独立的模块,快速在项目中嵌入二维码的能力。
[0164]
综上所述,本技术实施例提供的二维码生成方法,通过基于选择操作从多种数据类型中选择一种作为目标数据类型,基于用户的选择操作从多种目标渲染类型中选择一种作为目标渲染类型,并在获取到渲染内容后,通过二维码组件,基于对应的目标数据类型和目标渲染类型生成二维码,从而使得在生成二维码时,对于数据类型和渲染类型的需求不同的应用程序,可以通过相同的二维码组件生成各自需要的二维码,从而提高了二维码组件的适用性,进而提高了对具有二维码生成及展示功能的应用程序的开发效率。
[0165]
以二维码为城市码为例,图13示出了本技术一示例性实施例示出的城市码生成过
程的示意图,如图13所示,在城市码生成时,需要获取输入参数,该输入参数包括二维码输入类型(input type),渲染类型(render type),渲染内容(content)以及过期时间(expiretime)。
[0166]
在生成二维码的过程中,首先执行二维码生成流程1310,在二维码生成流程1310中,基于用户的选择确定二维码的输入类型为字符串(text),字节流(arraybuffer)以及base64二维码图片中的一种,确定渲染类型为画布类型(canvas)以及图像类型(image)中的一种,结合渲染内容,通过二维码组件生成二维码。
[0167]
步骤1320,展示该二维码(亮码)。
[0168]
步骤1330,对过期时间进行判断,确定该过期时间是否结束,若是,执行步骤1340,否则,执行步骤1360。
[0169]
步骤1340,显示过期的样式,停止亮码展示。
[0170]
步骤1350,重新请求输入参数以及过期时间,返回步骤1310。
[0171]
步骤1360,确定渲染内容是否改变,若是,则返回步骤1310,否则返回步骤1320。
[0172]
在二维码生成流程中,text字符串模式下,二进制的原理是将string进行编码,转换成字节数据,再进行后续的生码流程;而array-buffer模式下,输入字符串,可以将字符串转成arraybuffer对象,再根据uint8array类转成字节数组。
[0173]
图14示出了本技术一示例性实施例提供的二维码展示装置的方框图,如图14所示,该二维码展示装置,包括:
[0174]
参数获取模块1410,用于获取输入参数,所述输入参数包含用于生成二维码的渲染内容、目标数据类型以及目标渲染类型;所述目标数据类型用于指示所述渲染内容在二维码中的格式,所述目标渲染类型用于指示所述二维码的类型;
[0175]
二维码生成模块1420,用于基于所述输入参数调用二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码;
[0176]
二维码展示模块1430,用于展示所述二维码。
[0177]
在一种可能的实现方式中,所述目标数据类型是字节数组、字符串或者base64图片字符串;
[0178]
所述目标渲染类型是图像类型或者画布类型。
[0179]
在一种可能的实现方式中,所述二维码生成模块1420,包括:
[0180]
格式转换子模块,用于响应于所述渲染内容的格式与所述目标数据类型指示的格式不同,通过所述二维码组件将所述渲染内容的格式转换为所述目标数据类型指示的格式;
[0181]
二维码生成子模块,用于通过所述二维码组件,基于格式转换后的所述渲染内容,以及所述目标渲染类型生成所述二维码。
[0182]
在一种可能的实现方式中,所述格式转换子模块用于响应于所述目标数据类型指示的格式为字节数组,所述渲染内容的格式为字符串,所述二维码组件将所述渲染内容由字符串的格式转换为字节数组的格式。
[0183]
在一种可能的实现方式中,所述参数获取模块1410,用于通过子程序获取所述输入参数,所述子程序是依赖于宿主程序执行的应用程序;
[0184]
所述二维码生成模块1420,用于通过所述子程序调用所述宿主程序中安装的所述
二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码。
[0185]
在一种可能的实现方式中,所述输入参数包括有效时长;所述装置还包括:
[0186]
取消展示模块,用于响应于所述二维码的展示时长达到有效时长,取消展示所述二维码。
[0187]
在一种可能的实现方式中,所述装置还包括:
[0188]
过期提示展示模块,用于响应于所述二维码的展示时长达到所述有效时长,展示过期提示,所述过期提示用于提示所述二维码已过期。
[0189]
在一种可能的实现方式中,所述装置还包括:
[0190]
截屏次数获取模块,用于获取指定时间段内基于所述二维码的截屏次数;
[0191]
所述参数获取模块1410,用于响应于所述截屏次数未达到截屏次数阈值,基于所述输入参数调用所述二维码组件,所述二维码组件基于所述目标数据类型以及所述目标渲染类型生成包含所述渲染内容的所述二维码。
[0192]
在一种可能的实现方式中,所述二维码展示模块1430,用于响应于检测到截屏操作,展示截屏提示,所述截屏提示用以指示所述截屏次数阈值。
[0193]
在一种可能的实现方式中,所述装置还包括:
[0194]
亮度调整模块,用于响应于展示所述二维码,将所述二维码展示界面的亮度调整为亮度阈值。
[0195]
在一种可能的实现方式中,所述装置还包括:
[0196]
扫码记录获取模块,用于从后台服务器中获取对所述二维码的扫码记录;
[0197]
扫码记录展示模块,用于展示所述扫码记录,所述扫码记录用以指示扫码端对所述二维码的扫码结果,所述扫码结果指示扫码成功,或者,扫码失败。
[0198]
在一种可能的实现方式中,所述装置还包括:
[0199]
弹框展示模块,用于响应于未开启消息订阅功能,展示消息订阅弹框,所述消息订阅弹框用于提示是否开启所述消息订阅功能。
[0200]
综上所述,本技术实施例提供的二维码展示装置,通过基于选择操作从多种数据类型中选择一种作为目标数据类型,基于用户的选择操作从多种目标渲染类型中选择一种作为目标渲染类型,并在获取到渲染内容后,通过二维码组件,基于对应的目标数据类型和目标渲染类型生成二维码,从而使得在生成二维码时,对于数据类型和渲染类型的需求不同的应用程序,可以通过相同的二维码组件生成各自需要的二维码,从而提高了二维码组件的适用性,进而提高了对具有二维码生成及展示功能的应用程序的开发效率。
[0201]
图15示出了本技术一示例性实施例示出的计算机设备1500的结构框图。该计算机设备可以实现为本技术上述方案中的小程序后台服务器或机具后台服务器。所述计算机设备1500包括中央处理单元(central processing unit,cpu)1501、包括随机存取存储器(random access memory,ram)1502和只读存储器(read-only memory,rom)1503的系统存储器1504,以及连接系统存储器1504和中央处理单元1501的系统总线1505。所述计算机设备1500还包括用于存储操作系统1509、应用程序1510和其他程序模块1511的大容量存储设备1506。
[0202]
所述大容量存储设备1506通过连接到系统总线1505的大容量存储控制器(未示
出)连接到中央处理单元1501。所述大容量存储设备1506及其相关联的计算机可读介质为计算机设备1500提供非易失性存储。也就是说,所述大容量存储设备1506可以包括诸如硬盘或者只读光盘(compact disc read-only memory,cd-rom)驱动器之类的计算机可读介质(未示出)。
[0203]
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、可擦除可编程只读寄存器(erasable programmable read only memory,eprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)闪存或其他固态存储其技术,cd-rom、数字多功能光盘(digital versatile disc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1504和大容量存储设备1506可以统称为存储器。
[0204]
根据本公开的各种实施例,所述计算机设备1500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1500可以通过连接在所述系统总线1505上的网络接口单元1507连接到网络1508,或者说,也可以使用网络接口单元1507来连接到其他类型的网络或远程计算机系统(未示出)。
[0205]
所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集存储于存储器中,中央处理器1501通过执行该至少一条指令、至少一段程序、代码集或指令集来实现上述各个实施例所示的二维码生成方法中的全部或者部分步骤。
[0206]
图16示出了本技术一个示例性实施例提供的计算机设备1600的结构框图。该计算机设备1600可以实现为上述的终端,比如:智能手机、平板电脑、笔记本电脑或台式电脑。计算机设备1600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
[0207]
通常,计算机设备1600包括有:处理器1601和存储器1602。
[0208]
处理器1601可以包括一个或多个处理核心,比如4核心处理器、16核心处理器等。处理器1601可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1601可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1601还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0209]
存储器1602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1601所执行以实现本申
请中方法实施例提供的二维码生成方法。
[0210]
在一些实施例中,计算机设备1600还可选包括有:外围设备接口1603和至少一个外围设备。处理器1601、存储器1602和外围设备接口1603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1603相连。具体地,外围设备包括:射频电路1604、显示屏1605、摄像头组件1606、音频电路1607、定位组件1608和电源1609中的至少一种。
[0211]
外围设备接口1603可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1601和存储器1602。在一些实施例中,处理器1601、存储器1602和外围设备接口1603被集成在同一芯片或电路板上;在一些其他实施例中,处理器1601、存储器1602和外围设备接口1603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0212]
在一些实施例中,计算机设备1600还包括有一个或多个传感器1610。该一个或多个传感器1610包括但不限于:加速度传感器1611、陀螺仪传感器1612、压力传感器1613、指纹传感器1614、光学传感器1615以及接近传感器1616。
[0213]
本领域技术人员可以理解,图16中示出的结构并不构成对计算机设备1600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0214]
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述二维码生成方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0215]
在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2、图3或图13任一实施例所示方法的全部或部分步骤。
[0216]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0217]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1