一种直播间内隐身匿名功能的实现方法及装置与流程

文档序号:17430822发布日期:2019-04-17 03:28阅读:3579来源:国知局
一种直播间内隐身匿名功能的实现方法及装置与流程

本发明涉及互联网移动端应用开发技术领域,更具体地,涉及一种直播间内隐身匿名功能的实现方法及装置。



背景技术:

随着手机移动端的快速发展,随着越来越多的用户喜爱观看直播,用户通常会给喜爱的主播赠送礼物,存在一些有高付费意愿的用户会对主播赠送较高价值的礼物,甚至愿意购买一定价值的身份标示。在实际情况中,通常赠送过很多高价值的礼物或者购买了高价值身份的用户(即这部分付费用户在直播平台上被称之为贵族用户)会获得一些特殊的标示,比如在排行榜靠前的位置显示这些贵族用户的昵称,或者,在其进入直播间的时候,给予这些贵族用户进入直播间一些特殊的提示,比如进场欢迎特效或进场广播等效果,从而提升付费用户的体验。

但是随着用户需求越来越多样化,对于这些付费的贵族用户,有时候他们并不想要这些表现他们身份的特殊标示,因此,需要提供一种方法,能够实现有些贵族用户进入房间或者赠送礼物之后处于匿名隐身的状态,而目前现有技术没有提供如何使享有特殊标示的贵族用户自主选择是否隐身的机制,不能满足用户的个性化需求。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的一种直播间内隐身匿名功能的实现方法及装置。

根据本发明的一个方面,提供一种直播间内隐身匿名功能的实现方法,包括:

s1,在满足预设条件的目标用户的设置界面中添加用于供所述目标用户选择是否开启隐身匿名功能的开关控件;

s2,当监听到所述开关控件的状态被改变的事件时,通过代理执行开关切换函数向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供所述服务器根据所述网络请求执行隐身匿名功能的开启或关闭。

其中,所述步骤s1进一步包括:

s11,创建并初始化一个uiswitch类开关控件,设置所述开关控件的默认状态;

s12,利用uiswitch的addtarget:action:forcontrolevents:方法为所述开关控件添加事件监听,所述事件监听用于监听所述开关控件的状态被改变的事件;

s13,使用子控件添加函数addsubview将设置了事件监听的所述开关控件添加至满足预设条件的目标用户的设置界面中。

其中,所述步骤s12进一步包括:

设置所述addtarget:action:forcontrolevents:方法所包含的三个参数,其中,第一个参数为处理所述开关控件状态被改变的事件的对象,第二个参数为监听到所述开关控件状态被改变的事件之后执行的方法,第三个参数为所述开关控件状态被改变的事件本身。

其中,所述步骤s2进一步包括:

s21,当监听到所述开关控件的状态被改变的事件时,执行所述addtarget:action:forcontrolevents:方法的第二个参数所表示的方法以响应所述事件;

s22,调用respondstoselector函数判断所述设置界面的控制器是否设置了代理以及所述代理是否实现了开关切换函数;

s23,若所述代理实现了开关切换函数,则使代理执行所述开关切换函数,以获取所述开关控件的状态并向服务器发送与所述开关控件状态相应的隐身匿名功能开启或关闭的网络请求。

其中,所述步骤s23进一步包括:

当代理执行所述开关切换函数时,若获取到所述开关控件的状态为开启,则向服务器发送隐身匿名功能开启的网络请求,并使用变量将所述隐身匿名功能开启的网络请求操作进行保存;或者,

若获取到所述开关控件的状态为关闭,则向服务器发送隐身匿名功能关闭的网络请求,并使用变量将所述隐身匿名功能关闭的网络请求操作进行保存。

其中,在所述步骤s23之后,还包括:

根据所述变量的值判断是否已有隐身匿名功能开启或者关闭的网络请求正在执行;

若获知当前没有隐身匿名功能开启或者关闭的网络请求正在执行,则执行网络请求管理类的用于开启或关闭隐身匿名功能的函数;

根据所述用于开启或关闭隐身匿名功能的函数的返回值判断所述隐身匿名功能的开启或关闭是否已成功执行,若执行成功,则向用户发送提示消息,或者,若执行失败,则对所述开关控件的状态进行相应的设置。

其中,在所述步骤s1前还包括:

为满足预设条件的目标用户的设置界面设置控制器代理。

根据本发明的另一个方面,提供一种直播间内隐身匿名功能的实现装置,包括:

开关添加模块,用于在满足预设条件的目标用户的设置界面中添加用于供所述目标用户选择是否开启隐身匿名功能的开关控件;

功能实现模块,用于当监听到所述开关控件的状态被改变的事件时,通过代理执行开关切换函数向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供所述服务器根据所述网络请求执行隐身匿名功能的开启或关闭。

根据本发明的另一个方面,提供一种直播间内隐身匿名功能的实现设备,包括:存储器、处理器、以及总线,

所述处理器和存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述存储器中的程序指令,以执行如前任一所述的方法。

根据本发明的又一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前所述的方法。

本发明提出的一种直播间内隐身匿名功能的实现方法及装置,提供了使享有特殊标示的贵族用户自主选择是否隐身的机制,可以满足用户的个性化需求,提升用户体验。

附图说明

图1为本发明一实施例提供的一种直播间内隐身匿名功能的实现方法的流程示意图;

图2为本发明另一实施例提供的一种直播间内隐身匿名功能的实现装置的结构示意图;

图3为本发明另一实施例提供的一种直播间内隐身匿名功能的实现设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。

如图1所示,为本发明一实施例提供的一种直播间内隐身匿名功能的实现方法的流程示意图,包括:

s1,在满足预设条件的目标用户的设置界面中添加用于供所述目标用户选择是否开启隐身匿名功能的开关控件;

s2,当监听到所述开关控件的状态被改变的事件时,通过代理执行开关切换函数向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供所述服务器根据所述网络请求执行隐身匿名功能的开启或关闭。

本发明实施例提供一种直播间内隐身匿名功能的实现方法,隐身匿名功能是为直播平台上等级较高的用户专门设计的。目前直播平台上等级较高的用户都享有一些特权,比如当这些用户进入直播间时,系统会进行广播、给予进场特效,或者,在这些用户给直播间内正在进行直播的主播赠送礼物后,系统会给予一定的特效提示,以彰显用户身份。但是,随着用户的个性化需求的不断发展,有些时候这些等级较高的用户不希望这些与之身份相关的特权标示显示出来,隐身匿名功能由此出现,当开启了隐身匿名功能的用户进入直播间时,与之身份相关的特权标示都会被取消。

具体地,步骤s1中满足预设条件的目标用户是指直播平台所定义的等级用户,例如贵族用户,预设条件可以根据直播平台的设置而确定。在满足预设条件的目标用户的设置界面中添加开关控件,所述开关控件用于供所述满足预设条件的目标用户选择是否开启隐身匿名功能。当用户满足了预设条件,成为了目标用户,在该用户的设置界面中会出现一个隐身匿名功能开关。

在满足预设条件的目标用户的设置界面中添加开关控件的具体步骤为:创建一个开关控件并进行初始化,包括为所述开关控件分配内存、设置开关控件的位置等,并为所创建的开关控件添加事件监听,使得该开关控件的开启或关闭能得到响应,然后将设置好事件监听的开关控件添加到所述设置界面中。

步骤s2,当监听到所述开关控件的状态被改变的事件时,即指当用户对所述隐身匿名功能开关进行了操作,如开启或关闭所述开关控件,会触发所述开关控件的事件监听,然后,处理该开关控件的状态被改变的事件的对象(一般是该设置界面的父视图或控制器)会调用相应的事件处理方法,从而响应用户的操作。本发明实施例通过该设置界面的控制器的代理执行开关切换函数以响应所述开关控件的状态被改变事件,其中,所述开关切换函数用于根据所述开关控件的状态向服务器发送相应的隐身匿名功能开启或关闭的网络请求。使用代理将用户改变开关状态的事件传递出去,例如,当服务器接收到隐身匿名功能开启的网络请求时,服务器就会将所述目标用户的特权标示进行关闭,包括将所述目标用户的进场特效关闭,礼物广播取消或者将该用户的身份修改为匿名或者神秘人,在排行榜显示为神秘人或者匿名用户,从而实现了隐身匿名功能的开启。当服务器接收到隐身匿名功能关闭的网络请求时,则将上述目标用户的特权标示进行恢复。

本发明提出的一种直播间内隐身匿名功能的实现方法,通过增加一个开关控件,使用代理传递并响应事件,实现简单且耦合性低,提供了使享有特殊标示的贵族用户自主选择是否隐身的机制,可以满足用户的个性化需求,有效提升用户体验。

基于上述实施例,所述步骤s1进一步包括:

s11,创建并初始化一个uiswitch类开关控件,设置所述开关控件的默认状态;

s12,利用uiswitch的addtarget:action:forcontrolevents:方法为所述开关控件添加事件监听,所述事件监听用于监听所述开关控件的状态被改变的事件;

s13,使用子控件添加函数addsubview将设置了事件监听的所述开关控件添加至满足预设条件的目标用户的设置界面中。

具体地,s11,使用开关控件创建类uiswitch,通过初始化函数init创建一个开关控件_nobleinvisiblesettingview,调用内存分配函数alloc为所创建的开关控件分配内存,使用点语法.frame为所创建的开关控件设置坐标值,坐标值即开关控件在页面中的位置;并设置所述开关控件的默认状态为开启或关闭。

s12,使用ios系统提供的uiswitch的addtarget:action:forcontrolevents:方法为所述开关控件添加事件监听,addtarget方法包含三个参数,如下:

_nobleinvisiblesettingviewaddtarget:selfaction:@selector(rankinvisibleswitchchangedhandler:)forcontrolevents:uicontroleventvaluechanged;

其中,_nobleinvisiblesettingview表示所创建的开关控件,addtarget后面的参数为self,表示用于处理所述开关控件状态被改变事件的对象,action后面的参数为rankinvisibleswitchchangedhandler,表示所述开关控件状态被改变事件被触发后执行的方法,forcontrolevents后面的参数为uicontroleventvaluechanged,表示开关控制值的改变为触发事件监听的所述开关控件状态被改变的事件。

所述事件监听用于监听所述开关控件的状态被改变的事件是否发生,并指明处理所述事件的对象以及事件处理方法。

其中,所述步骤s12进一步包括:

设置所述addtarget:action:forcontrolevents:方法所包含的三个参数,其中,第一个参数用于表示处理所述开关控件状态被改变的事件的对象,一般设置为这个开关控件所在的父视图或者是父控制器,第二个参数用于表示监听到所述开关控件状态被改变的事件之后执行的方法,这里设置为rankinvisibleswitchchangedhandler方法的指针,即所述开关控件状态被改变的事件被触发后执行自定义的rankinvisibleswitchchangedhandler方法,第三个参数用于表示触发事件监听的所述开关控件状态被改变的事件,这里设置为所述开关控件值的改变uicontroleventvaluechanged。

s13,使用子控件添加函数addsubview将设置了事件监听的所述开关控件添加到设置界面中,addsubview会将所述开关控件加到所述设置界面的顶层,所述开关控件在设置界面中的位置由该开光控件的坐标值确定。

基于上述实施例,所述步骤s2进一步包括:

s21,当监听到所述开关控件的状态被改变的事件时,执行所述addtarget:action:forcontrolevents:方法的第二个参数所表示的方法以响应所述事件;

s22,调用respondstoselector函数判断所述设置界面的控制器是否设置了代理以及所述代理是否实现了开关切换函数;

s23,若所述代理实现了开关切换函数,则使代理执行所述开关切换函数,以获取所述开关控件的状态并向服务器发送与所述开关控件状态相应的隐身匿名功能开启或关闭的网络请求。

当监听到所述开关控件的状态被改变事件时,通过代理执行开关切换函数以响应所述开关控件的状态被改变事件,具体包括以下步骤:

s21,addtarget方法的第一个参数指明了事件被触发后执行事件响应方法的对象为当前设置界面的控制器,addtarget方法的第二个参数已指明所述开关控制的状态被改变事件被触发后执行的事件响应方法为rankinvisibleswitchchangedhandler方法,则当监听到所述开关控件的状态被改变的事件时,当前页面的控制器会执行所述rankinvisibleswitchchangedhandler方法以对所述事件进行响应,rankinvisibleswitchchangedhandler方法需要一个参数,这个参数类型是uiswitch类型,参数名为sender。

s22中,本发明当前设置界面的控制器不直接执行具体的开关切换函数,而是由它的代理来执行。为了增加程序的健壮性,在所述rankinvisibleswitchchangedhandler方法被调用之后,在所述rankinvisibleswitchchangedhandler方法内部调用respondstoselector函数判断所述设置界面的控制器是否设置了代理以及所述代理是否实现了开关切换函数ranklistviewclickedinvisibleswitchwithison,这一步可以避免程序崩溃。

s23,根据respondstoselector函数返回的结果,若获知所述设置页面的控制器的代理存在,且实现了所述开关切换函数ranklistviewclickedinvisibleswitchwithison,则使所述代理执行开关切换函数ranklistviewclickedinvisibleswitchwithison,即在所述rankinvisibleswitchchangedhandler方法中回调代理实现的开关切换函数ranklistviewclickedinvisibleswitchwithison。

代理通过执行所述开关切换函数实现了向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供服务器根据所接收到的网络请求,执行相应的隐身匿名功能开启或关闭操作。

本发明实施例使用代理传递并响应事件,使得程序实现简单且耦合性低,易于功能的扩展。

基于上述实施例,所述步骤s23进一步包括:

当代理执行所述开关切换函数时,若获取到所述开关控件的状态为开启,则向服务器发送隐身匿名功能开启的网络请求,并使用变量将所述隐身匿名功能开启的网络请求操作进行保存;或者,

若获取到所述开关控件的状态为关闭,则向服务器发送隐身匿名功能关闭的网络请求,并使用变量将所述隐身匿名功能关闭的网络请求操作进行保存。

具体地,当代理需要执行开关切换函数ranklistviewclickedinvisibleswitchwithison的时候,首先获取参数sender,并根据sender的值判断所述开关控件的当前状态是开启还是关闭,如果是开启,就需要告知服务器执行贵族隐身匿名,则向服务器发送隐身匿名功能开启的网络请求;如果是关闭,就需要告知服务器将隐身匿名功能关闭,向服务器发送隐身匿名功能关闭的网络请求。并且,使用一个变量invisiblesettingtask将所述隐身匿名功能开启的网络请求操作保存下来。所述变量invisiblesettingtask用于避免重复请求导致数据紊乱。

基于上述各实施例,在所述步骤s23之后,还包括:

根据所述变量的值判断是否已有隐身匿名功能开启或者关闭的网络请求正在执行;

若获知当前没有隐身匿名功能开启或者关闭的网络请求正在执行,则执行网络请求管理类的用于开启或关闭隐身匿名功能的函数;

根据所述用于开启或关闭隐身匿名功能的函数的返回值判断所述隐身匿名功能的开启或关闭是否已成功执行,若执行成功,则向用户发送提示消息,或者,若执行失败,则对所述开关控件的状态进行相应的设置。

具体地,在服务器接收到代理发送的隐身匿名功能开启或关闭的网络请求之后,首先需要根据所述变量invisiblesettingtask的值判断是否已有隐身匿名功能开启或者关闭的网络请求正在执行,若获知已有隐身匿名功能开启或者关闭的网络请求正在执行,则取消当前隐身匿名功能开启或关闭的网络请求,以避免重复请求造成数据紊乱。

若服务器获知当前没有隐身匿名功能开启或者关闭的网络请求正在执行,则执行网络请求管理类的用于开启或关闭隐身匿名功能的函数。这个函数会有一个返回值,也就是网络请求的结果,获得当前开启或关闭隐身匿名功能执行成功还是失败,如果成功,就使用提示告知用户隐身匿名功能已经开启或关闭,如果失败,则告知用户隐身匿名功能开启或关闭失败的原因,同时使用函数setinvisibleswitchwithison将所述开关控件的状态进行相应的设置,如果是用户隐身匿名功能开启失败,则将所述开关控件的状态设置为关闭,如果是用户隐身匿名功能关闭失败,则将所述开关控件的状态设置为开启。

当隐身匿名功能开启成功,这样服务器端就将目标用户进场特效关闭、礼物广播取消或者修改为匿名或者神秘人,在排行榜显示为神秘人或者匿名用户,实现了隐身匿名的开启。当隐身匿名功能关闭成功,这样服务器端就将该目标用户的进场特效开启,礼物广播恢复显示目标用户的昵称,在排行榜显示目标用户的昵称,实现了隐身匿名的关闭。

基于上述各实施例,在所述步骤s1前还包括:

为满足预设条件的目标用户的设置界面设置控制器代理。

为了通过代理传递并响应所述开关控件状态被改变的事件,需要在步骤s1之前就为所述开关控制所在的设置界面设置控制器代理。这样当监听到所述开关控件状态被改变的事件时,就在获知代理存在且实现了开关切换函数后,通过代理对所述事件进行响应。

如图2所示,为本发明另一实施例提供的一种直播间内隐身匿名功能的实现装置的结构示意图,包括:开关添加模块21和功能实现模块22,其中,

开关添加模块21,用于在满足预设条件的目标用户的设置界面中添加用于供所述目标用户选择是否开启隐身匿名功能的开关控件;

功能实现模块22,用于当监听到所述开关控件的状态被改变的事件时,通过代理执行开关切换函数向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供所述服务器根据所述网络请求执行隐身匿名功能的开启或关闭。

具体地,满足预设条件的目标用户是指直播平台所定义的等级用户,例如贵族用户,预设条件可以根据直播平台的设置而确定。在满足预设条件的目标用户的设置界面中添加开关控件,所述开关控件用于供所述满足预设条件的目标用户选择是否开启隐身匿名功能。当用户满足了预设条件,成为了目标用户,在该用户的设置界面中会出现一个隐身匿名功能开关。

开关添加模块21向满足预设条件的目标用户的设置界面中添加开关控件的具体步骤为:创建一个开关控件并进行初始化,包括为所述开关控件分配内存、设置开关控件的位置等,并为所创建的开关控件添加事件监听,使得该开关控件的开启或关闭能得到响应,然后将设置好事件监听的开关控件添加到所述设置界面中。

功能实现模块22用于当监听到所述开关控件的状态被改变的事件时,即指当用户对所述隐身匿名功能开关进行了操作,如开启或关闭所述开关控件,会触发所述开关控件的事件监听,然后,处理该开关控件的状态被改变的事件的对象(一般是该设置界面的父视图或控制器)会调用相应的事件处理方法,从而响应用户的操作。本发明实施例通过该设置界面的控制器的代理执行开关切换函数以响应所述开关控件的状态被改变事件,其中,所述开关切换函数用于根据所述开关控件的状态向服务器发送相应的隐身匿名功能开启或关闭的网络请求。使用代理将用户改变开关状态的事件传递出去,例如,当服务器接收到隐身匿名功能开启的网络请求时,服务器就会将所述目标用户的特权标示进行关闭,包括将所述目标用户的进场特效关闭,礼物广播取消或者将该用户的身份修改为匿名或者神秘人,在排行榜显示为神秘人或者匿名用户,从而实现了隐身匿名功能的开启。当服务器接收到隐身匿名功能关闭的网络请求时,则将上述目标用户的特权标示进行恢复。

本发明提出的一种直播间内隐身匿名功能的实现装置,通过增加一个开关控件,使用代理传递并响应事件,实现简单且耦合性低,提供了使享有特殊标示的贵族用户自主选择是否隐身的机制,可以满足用户的个性化需求,有效提升用户体验。

基于上述实施例,所述开关添加模块21具体用于:

创建并初始化一个uiswitch类开关控件,设置所述开关控件的默认状态;

利用uiswitch的addtarget:action:forcontrolevents:方法为所述开关控件添加事件监听,所述事件监听用于监听所述开关控件的状态被改变的事件;

使用子控件添加函数addsubview将设置了事件监听的所述开关控件添加至满足预设条件的目标用户的设置界面中。

基于上述实施例,所述功能实现模块22具体用于:

当监听到所述开关控件的状态被改变的事件时,执行所述addtarget:action:forcontrolevents:方法的第二个参数所表示的方法以响应所述事件;

调用respondstoselector函数判断所述设置界面的控制器是否设置了代理以及所述代理是否实现了开关切换函数;

若所述代理实现了开关切换函数,则使代理执行所述开关切换函数,以获取所述开关控件的状态并向服务器发送与所述开关控件状态相应的隐身匿名功能开启或关闭的网络请求。

如图3所示,为本发明另一实施例提供的一种直播间内隐身匿名功能的实现设备的结构示意图,包括:存储器31、处理器32、以及总线33,

所述处理器32和存储器31通过所述总线33完成相互间的通信;

所述存储器31存储有可被所述处理器32执行的程序指令,所述处理器32调用所述存储器31中的程序指令,以执行如前上述各实施例所述的方法,例如包括:s1,在满足预设条件的目标用户的方法设置界面中添加用于供所述目标用户选择是否开启隐身匿名功能的开关控件;s2,当监听到所述开关控件的状态被改变的事件时,通过代理执行开关切换函数向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供所述服务器根据所述网络请求执行隐身匿名功能的开启或关闭。

根据本发明的又一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上述各方法实施例所述的方法,例如包括:s1,在满足预设条件的目标用户的方法设置界面中添加用于供所述目标用户选择是否开启隐身匿名功能的开关控件;s2,当监听到所述开关控件的状态被改变的事件时,通过代理执行开关切换函数向服务器发送与所述开关控件的状态相应的隐身匿名功能开启或关闭的网络请求,以供所述服务器根据所述网络请求执行隐身匿名功能的开启或关闭。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述一种直播间内隐身匿名功能的实现设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

本发明提出的一种直播间内隐身匿名功能的实现方法及装置,提供了使享有特殊标示的贵族用户自主选择是否隐身的机制,可以满足用户的个性化需求,提升用户体验。

最后,本发明的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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