小程序消息的处理方法、设备和计算机存储介质与流程

文档序号:18331255发布日期:2019-08-03 12:15阅读:207来源:国知局
小程序消息的处理方法、设备和计算机存储介质与流程

本发明涉及计算机应用技术领域,特别涉及一种小程序消息的处理方法、设备和计算机存储介质。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就被认为是现有技术。

小程序(miniprogram)是一种不需要下载安装即可使用的应用,其运行于宿主应用提供的环境下。其因随时可用但又无需安装卸载而得到了越来越广泛的应用。用户在使用小程序的过程中常常会需要发送或接收小程序消息,目前小程序消息的传递依托宿主应用。即由小程序向宿主应用的服务器端提供消息内容数据,例如图片、标题等,由宿主应用的服务器端将该消息内容数据和预先设置的模板提供给宿主应用,由宿主应用对消息内容数据进行组装后通过会话界面展示,该小程序消息被链接至设定的小程序界面。当用户在宿主应用的会话界面点击小程序消息时,固定跳转至对应的小程序界面。

显然,现有小程序消息的展现形式受限于宿主应用,小程序消息的开发者无法自主、灵活地控制小程序消息的展现。



技术实现要素:

有鉴于此,本发明提供了一种小程序消息的处理方法、设备和计算机存储介质,以方便小程序消息的开发者自主、灵活地控制小程序消息的展现。

具体技术方案如下:

第一方面,本发明提供了一种小程序消息的处理方法,该方法包括:

小程序获取要发送的小程序消息数据和会话对象信息,所述小程序消息数据包括:消息内容数据和展现结构信息;

发送所述小程序消息数据和会话对象信息至宿主应用的服务器端,以便服务器端将所述小程序消息数据发送至所述会话对象信息对应的宿主应用;

其中,所述小程序消息数据用于宿主应用展示对应的小程序消息体。

根据本发明一优选实施方式,小程序获取要发送的小程序消息数据和会话对象信息包括:

小程序获取用户通过小程序中的分享功能触发的要发送的小程序消息数据和所述用户在所述分享功能中选择的会话对象信息;或者,

小程序获取用户支付或提交表单触发的通知类小程序消息数据,并将该用户的信息作为会话对象信息。

根据本发明一优选实施方式,所述小程序消息数据还包括:可执行代码片段;

所述可执行代码片段用于响应所述消息体被展示后回传的由所述消息体产生的事件。

根据本发明一优选实施方式,由所述消息体产生的事件包括:用户交互事件和/或所述消息体的程序运行事件。

根据本发明一优选实施方式,所述可执行代码片段用于响应所述消息体被展示后回传的由所述消息体产生的事件包括:

所述可执行代码片段依据由所述消息体产生的事件改变所述消息体的展示内容或形式;或者,

所述可执行代码片段依据由所述消息体产生的事件,打开网页、小程序或其他应用的界面。

根据本发明一优选实施方式,由所述消息体产生的事件被回传并同步至同一会话中各消息体的可执行代码片段。

第二方面,本发明还提供了一种小程序消息的处理方法,该方法包括:

宿主应用的服务器获取小程序发送的小程序消息数据和会话对象信息,所述小程序消息数据包括:消息内容数据和展现结构信息;

将所述小程序消息数据发送至所述会话对象信息对应的宿主应用;

其中,所述小程序消息数据用于宿主应用展示对应的小程序消息体。

根据本发明一优选实施方式,所述小程序消息数据还包括:可执行代码片段;

所述可执行代码片段用于响应所述消息体被展示后回传的由所述消息体产生的事件。

根据本发明一优选实施方式,该方法还包括:

所述宿主应用的服务器同步所述回传的由所述消息体产生的事件至同一会话中各消息体的可执行代码片段。

第三方面,本发明还提供了一种小程序消息的处理方法,该方法包括:

宿主应用接收服务器获取到小程序发送的小程序消息数据和会话对象信息后转发的小程序消息数据,所述宿主应用为所述会话对象信息对应的宿主应用,所述小程序消息数据包括:消息内容数据和展现结构信息;

展示所述小程序消息数据对应的小程序消息体。

根据本发明一优选实施方式,所述小程序消息数据还包括:可执行代码片段;

所述可执行代码片段用于响应所述消息体被展示后回传的由所述消息体产生的事件。

根据本发明一优选实施方式,展示所述小程序消息数据对应的小程序消息体包括:

利用所述展现结构信息对所述消息内容数据进行组装,并嵌入所述可执行片段,得到小程序消息体。

根据本发明一优选实施方式,展示所述小程序消息数据对应的小程序消息体包括:

在与所述小程序的用户的会话界面,展示所述小程序消息数据对应的小程序消息体;或者,

在通知消息的界面,展示所述小程序消息数据对应的小程序消息体。

第四方面,本发明还提供了一种设备,所述设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的方法。

第五方面,本发明还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上所述的方法。

由以上技术方案可以看出,本发明中由小程序将消息内容数据和展现结构信息发送给服务器端,以便服务器端将其转发给宿主应用进行展示。这样小程序的开发者或用户就能够自主、灵活地自定义小程序消息的展现结构,而不受限于宿主应用。

【附图说明】

图1为本发明实施例一提供的方法流程图;

图2为本发明实施例二提供的方法流程图;

图3a~图3d为本发明实施例提供的界面示例图;

图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器的框图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

在本发明中涉及到三个主体对象:小程序、宿主应用和宿主应用的服务器端。首先对这三个主体对象的概念和关系进行明确:

小程序依托宿主应用运行于终端设备上,小程序运行所在的环境是宿主应用提供的。通常由小程序发送的消息是通过宿主应用转发给宿主应用的服务器端,再由宿主应用的服务器端转发给该消息的会话对象信息对应的宿主应用的。为了方便描述,后续将宿主应用的服务器端简称为服务器端。

本发明的核心思想在于,由小程序将消息内容数据和展现结构信息发送给服务器端,以便服务器端将其转发给宿主应用进行展示。这样小程序的开发者或用户就能够灵活地自定义小程序消息的展现结构,而不受限于宿主应用。下面结合实施例对本发明提供的方法进行详细描述。

实施例一、

图1为本发明实施例一提供的方法流程图,如图1中所示,该方法可以包括以下步骤:

在101中,小程序获取要发送的小程序消息数据和会话对象信息,所述小程序消息数据包括消息内容数据和展现结构信息。

触发发送小程序消息的方式可以包括多种,包括但不限于以下两种:

第一种方式:用户通过小程序的分享功能触发发送小程序消息。例如用户在使用小程序的过程中,想把当前小程序界面上的内容,或者小程序上的指定内容分享给其他用户,则可以触发小程序界面上的特定控件实现分享功能,在实现分享功能时,用户可以从用户列表中选择特定的用户或群组,依据用户选择的特定用户或群组确定小程序消息的会话对象。需要说明的是,在一些小程序中上述“分享”功能也可能被称为“转发”功能等其他称呼,但其目的都是为了将小程序中的内容发送给其他用户,均在本发明保护范围之内。

第二种方式:用户支付或提交表单触发通知类小程序消息。宿主应用平台上提供了一些机制来触发通知类小程序消息的发送,现有的主要是用户支付或提交表单来触发,但并不限于这两种机制。所谓通知类小程序消息就是基于用户支付或提交表单的行为向该用户发送基于这些行为所产生的通知消息,这类消息通常在宿主应用的通知消息的界面展现,例如“服务通知”界面等。因此,这种情况下,小程序消息的会话对象就是触发发送小程序消息的用户本身以及与小程序服务端之间的会话,可以将该用户的信息作为会话对象信息。

上述消息内容数据指的是消息包括的文本资源、图片资源、视频资源等与内容相关的数据。展现结构信息是指示消息内容数据按照什么样的结构进行展现以得到特定的样式,可以包括布局信息和资源类型信息等。

其中,展现结构信息可以由小程序的开发者进行预先设置,也可以向用户提供接口,由用户通过该接口对展现结构信息进行预先设置。当触发发送小程序消息时,自动携带预先设置的展现结构信息。

会话对象指的是该小程序消息所要发送到的会话,该会话可以是用户与用户之间的,可以是群组的,也可以是用户与小程序服务端的。通常情况下,每一会话均会采用会话id(标志)进行标识,依据该会话id可以确定属于该会话的用户信息。用户在使用小程序时一般采用宿主应用的账户直接登录,那么用户信息就可以是宿主应用账户信息。该会话对象信息通常由用户在触发小程序消息的发送时指定,或者,对于通知类小程序消息则通常将触发发送小程序消息的用户的信息作为会话对象信息。该部分也将在后续具体实施例中详述。

在102中,小程序发送小程序消息数据和会话对象信息至宿主应用的服务器端。

小程序发送的小程序消息数据和会话对象信息通过本终端设备的宿主应用发送至宿主应用的服务器端。

在103中,服务器端将小程序消息数据发送至会话对象信息对应的宿主应用。

在本发明实施例中,不再由服务器端确定小程序消息的模板数据,而是服务器端主要执行转发功能,将由小程序发送来的包括消息内容数据和展现结构信息的小程序消息数据转发至会话对象信息对应的宿主应用。

在104中,会话对象信息对应的宿主应用展示小程序消息数据对应的小程序消息体。

在本发明实施例中,依据会话对象信息可以确定出该会话中的所有用户信息,那么上述小程序消息数据会被发送至会话中所有用户的宿主应用。宿主应用接收到服务器端发送的小程序消息数据后,利用其中的展现结构信息对消息内容数据进行组装,得到小程序消息体。

在进行小程序消息体的展现时,可以在与发送小程序消息的用户的会话界面,展示小程序消息体。例如,用户a通过小程序的分享功能触发小程序发送小程序消息数据,会话对象为用户a与用户b之间的会话,则用户b所登录的宿主应用在用户b与用户a的会话界面上展示小程序消息数据对应的小程序消息体,与此同时,用户a所登录的宿主应用也会在用户a和用户b的会话界面上展示小程序消息数据对应的小程序消息体。

也可以在通知消息的界面展示小程序消息数据对应的小程序消息体。例如,用户a支付或提交表单触发通知类小程序消息,此时会话对象为用户a与小程序服务端之间的会话,则服务器端将该小程序消息数据发送给用户a所登录的宿主应用,该宿主应用在通知消息的界面上展示小程序消息数据对应的小程序消息体。

实施例二、

图2为本发明实施例二提供的方法流程图,如图2中所示,该方法可以包括以下步骤:

在201中,小程序获取要发送的小程序消息数据和会话对象信息,所述小程序消息数据包括消息内容数据、展现结构信息和可执行代码片段。

与实施例一类似地,触发发送小程序消息的方式可以包括多种,包括但不限于以下两种:

第一种方式:用户通过小程序的分享功能触发发送小程序消息。例如用户在使用小程序的过程中,想把当前小程序界面上的内容,或者小程序上的指定内容分享给其他用户,则可以触发小程序界面上的特定控件实现分享功能,在实现分享功能时,用户可以从用户列表中选择特定的用户作为小程序消息的会话对象。需要说明的是,在一些小程序中上述“分享”功能也可能被称为“转发”功能等其他称呼,但其目的都是为了将小程序中的内容发送给其他用户,均在本发明保护范围之内。

第二种方式:用户支付或提交表单触发通知类小程序消息。宿主应用平台上提供了一些机制来触发通知类小程序消息的发送,现有的主要是用户支付或提交表单来触发,但并不限于这两种机制。所谓通知类小程序消息就是基于用户支付或提交表单的行为向该用户发送基于这些行为所产生的通知消息,这类消息通常在宿主应用的通知消息的界面展现,例如“服务通知”界面等。因此,这种情况下,小程序消息的会话对象就是触发发送小程序消息的用户本身。

上述消息内容数据指的是消息包括的文本资源、图片资源、视频资源等与内容相关的数据。展现结构信息是指示消息内容数据按照什么样的结构进行展现以得到特定的样式,可以包括布局信息和资源类型信息等。

其中,展现结构信息可以由小程序的开发者进行预先设置,也可以向用户提供接口,由用户通过该接口对展现结构信息进行预先设置。当触发发送小程序消息时,自动携带预先设置的展现结构信息。

会话对象指的是该小程序消息所要发送到的用户信息,例如用户的账户信息。通常情况下,用户在使用小程序时采用宿主应用的账户直接登录,那么会话对象信息就是该小程序消息所要发送到的宿主应用账户信息。该会话对象信息通常由用户在触发小程序消息的发送时指定,或者,对于通知类小程序消息则通常将触发发送小程序消息的用户的信息作为会话对象信息。

与实施例一不同的是,在本实施例中,小程序消息数据中进一步包括可执行代码。即用户触发发送小程序消息时,小程序会自动将预先设置的可执行代码一并发送给宿主应用的服务器。可执行代码的功能将在后续步骤中详述。

在本发明实施例中,小程序的开发者可以针对不同类型的小程序消息设置不同的可执行代码。

在202中,小程序发送小程序消息数据和会话对象信息至宿主应用的服务器端。

在203中,服务器端将小程序消息数据发送至会话对象信息对应的宿主应用。

上述步骤202~203与实施例一种步骤102~103类似,只是小程序消息数据中包括可执行代码,不做赘述。

在204中,会话对象信息对应的宿主应用利用展现结构信息对消息内容数据进行组装,并嵌入可执行片段,得到小程序消息体,展现该小程序消息体。

与实施例一类似地,在进行小程序消息体的展现时,可以会话对象信息对应的会话界面,展示小程序消息体。例如,用户a通过小程序的分享功能触发小程序发送小程序消息数据,会话对象为用户a与用户b之间的会话,则用户b所登录的宿主应用在用户b与用户a的会话界面上展示小程序消息数据对应的小程序消息体,与此同时,用户a所登录的宿主应用也会在用户a和用户b的会话界面上展示小程序消息数据对应的小程序消息体。

也可以在通知消息的界面展示小程序消息数据对应的小程序消息体。例如,用户a支付或提交表单触发通知类小程序消息,此时会话对象为用户a与小程序服务端之间的会话,则服务器端将该小程序消息数据发送给用户a所登录的宿主应用,该宿主应用在通知消息的界面上展示小程序消息数据对应的小程序消息体。

与实施例一不同的是,展现的消息体中嵌入了可执行代码片段。可执行代码片段用于响应消息体被展示后回传的由消息体产生的事件。也就是说,小程序消息体被展示后,由该消息体产生的事件均会被回传至该消息体中的可执行代码片段。

其中,由消息体产生的事件可以包括但不限于用户交互事件和/消息体的程序运行事件。

用户交互事件可以包括但不限于诸如:在消息体上的点击、滑动、长按、多指交互等。消息体的程序运行事件可以包括但不限于消息体的展现、消息体的撤回、消息体的结束等等。

可执行代码片段可以依据由消息体产生的事件改变消息体在宿主应用界面上展示的内容或形式。

例如,可执行代码片段获取到消息体展现的事件后,知晓消息体处于展现状态。若进一步获取到用户在该消息体上的双指相对或反向的移动事件,则可以缩小或放大消息体的显示。

再例如,可执行代码片段获取到消息体的撤回事件后,可以将消息体进行逐渐淡化的显示直至消息体消失。

再例如,可执行代码片段获取到用户在展现的消息体上对“隐藏/显示”组件的点击事件,则显示隐藏的消息内容或隐藏显示的消息内容。

可执行代码片段也可以依据由消息体产生的事件,打开网页、小程序或其他应用的界面。

例如,可执行代码片段获取到用户在消息体上对特定链接的点击事件后,可以触发打开小程序以展现特定界面。

另外,同一会话中消息体产生的事件会被同步至该会话中所有消息体的可执行代码片段。例如某群组会话中包含用户a、b和c,当用户a在消息体上产生点击事件后,用户a的宿主应用所显示小程序消息体的可执行代码片段将回传的该点击事件上传至宿主应用的服务器端,由服务器端将该点击事件同步至用户b和c的宿主应用所显示小程序消息体的可执行代码片段。这样就实现了同一会话中各宿主应用所展现的小程序消息体基于事件所产生的小程序消息体的内容或形式变化同步。

在此举一个例子。

假设用户在某游戏类小程序的使用过程中,通过如图3a所示的小程序界面上触发发送小程序消息,即点击“去群里邀请好友”的按钮触发发送小程序消息。用户点击“去群里邀请好友”按钮后,显示如图3b所示的界面,从该界面上选择要转发的会话对象。例如用户选择了“游戏群”,那么会话对象就是该游戏群。

小程序将小程序消息数据和会话对象的信息发送给宿主应用的服务器,该小程序消息数据中包含了消息内容数据、展现结构信息和可执行代码片段。其中,消息内容数据可以是关于游戏角色种类选择的文本数据。展现结构信息和可执行代码片段可以是与图3a所示游戏类小程序界面对应的且由该游戏类小程序的开发人员预置的。

宿主应用的服务器将小程序消息数据发送至会话对象对应的宿主应用,即发送给游戏群的各用户的宿主应用。游戏群的各用户的宿主应用利用小程序消息数据中的展现结构信息对消息内容数据进行组装,并嵌入可执行片段,得到小程序消息体,展现该小程序消息体。可以展现如图3c所示的小程序消息体作为“游戏群”中的群组消息。

假设群友1点击了小程序消息体中“游侠”所在的组件进行游戏角色选择,群友2点击了“法师”所在的组件进行游戏角色选择,群友3点击了“国王”所在的组件进行游戏角色选择。这些基于小程序消息体的点击事件均回传给小程序消息体的可执行代码,并在该会话中所有可执行代码中同步,可执行代码对点击事件进行响应,改变小程序消息体的显示内容。例如图3d中所示,在各角色所在的组件显示选择该角色的用户信息。

图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。图4显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。

总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元016通过运行存储在系统存储器028中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的方法流程。

上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行本发明实施例所提供的方法流程。

随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

由以上描述可以看出,本发明提供的方法、设备和计算机存储介质可以具备以下优点:

1)由小程序将消息内容数据和展现结构信息发送给服务器端,以便服务器端将其转发给宿主应用进行展示。这样小程序的开发者或用户就能够自主、灵活地自定义小程序消息的展现结构,而不受限于宿主应用。

2)本申请中通过在小程序消息体中嵌入可执行代码片段,对基于小程序消息体的事件进行响应,从而动态地改变小程序消息的展现内容和形式,提供更加丰富的交互形式。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1