应用程序的页面跳转方法及装置的制造方法

文档序号:9597179阅读:333来源:国知局
应用程序的页面跳转方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种应用程序的页面跳转方法及装置。
【背景技术】
[0002]在安卓(Android)移动应用程序(App)的设计中,客户端往往需要接收来自服务器的指令,并由用户触发,在客户端执行相应的操作。
[0003]例如以下需求场景:后台服务器向所有客户端推送一条消息,告知用户有活动正在举行,用户可前往参加。推送的消息文本中包含有活动名称,并且高亮显示,吸引用户点击,而用户点击高亮的活动名称后客户端自动跳转到活动相关页面,方便用户参加活动。
[0004]上述需求场景可以抽象为:服务器端向客户端推送一消息,消息中包含一些页面跳转指令,如果用户点击消息文本中页面跳转指令对应的内容,则客户端触发该页面跳转指令,执行页面跳转操作。这类功能的常规实现一般是,客户端与服务器端规定好一些协议,协议中定义好客户端页面的标识码,而服务器推送的消息中带有这些标识码的页面跳转指令,客户端触发指令时,根据这些标识码跳转到标识码相对应的页面。
[0005]然而,上述方案实现中最大的缺陷是适应性和灵活性不足。如果需要新增一个页面跳转指令,则必须在协议中增加一个新的页面标识码,而客户端也必须增加一个跳转逻辑,即使当前客户端中存在跳转的目标页面。也就是说,如果新增页面跳转指令,无论客户端是否存在目标页面,客户端都必须做相应的修改。而此时如果客户端已经发布,那么就必须重新发布新的客户端以适应新需求。

【发明内容】

[0006]本发明的主要目的在于公开了一种应用程序的页面跳转方法及装置,以至少解决相关技术中新增页面跳转指令,在客户端存在目标页面的情况下,客户端仍需重新修改才能满足需求的问题。
[0007]根据本发明的一个方面,提供了一种应用程序的页面跳转方法。
[0008]根据本发明的应用程序的页面跳转方法包括:接收来自于服务器的插入有指令标识符的消息文本,其中,上述消息文本中将统一资源标识符(Uniform ResourceIdentifier,简称为URI)作为上述指令标识符,上述指令标识符包括:指令在消息文本中的显示内容以及目标页面的Activity类名;响应用户对上述显示内容的点击操作,调用ActivitySpan类的onClick方法,根据上述目标页面的Activity类名跳转至当前应用程序的目标页面。
[0009]根据本发明的另一方面,提供了一种应用程序的页面跳转装置。
[0010]根据本发明的应用程序的页面跳转装置包括:接收模块,用于接收来自于服务器的插入有指令标识符的消息文本,其中,上述消息文本中将统一资源标识URI作为上述指令标识符,上述指令标识符包括:指令在消息文本中的显示内容以及目标页面的Activity类名;跳转模块,用于响应用户对上述显示内容的点击操作,调用ActivitySpan类的onClick方法,根据上述目标页面的Activity类名跳转至当前应用程序的目标页面。
[0011]通过本发明,无需另外定义页面标识,以页面的Activity类名为标识符。因此在当前客户端已经存在目标页面的情况下,新增一个页面跳转指令时,客户端无须做任何修改便可以满足新的需求。
【附图说明】
[0012]图1是根据本发明实施例的应用程序的页面跳转方法的流程图;
[0013]图2是根据本发明优选实施例的ActivitySpan类的示意图;
[0014]图3是根据本发明优选实施例的应用程序的页面跳转方法的流程图;
[0015]图4是根据本发明优选实施例的客户端在显示之前处理消息文本的流程图;
[0016]图5是根据本发明实例的消息文本的示意图;
[0017]图6是根据本发明实施例的应用程序的页面跳转装置的结构框图;以及
[0018]图7是根据本发明优选实施例的应用程序的页面跳转装置的结构框图。
【具体实施方式】
[0019]下面结合说明书附图对本发明的具体实现方式做一详细描述。
[0020]图1是根据本发明实施例的应用程序的页面跳转方法的流程图。如图1所示,该应用程序的页面跳转方法包括:
[0021]步骤S101:接收来自于服务器的插入有指令标识符的消息文本,其中,上述消息文本中将统一资源标识(URI)作为上述指令标识符,上述指令标识符包括:指令在消息文本中的显示内容(可以称为指令标题)以及目标页面的Activity类名;
[0022]步骤S103:响应用户对上述显示内容的点击操作,调用ActivitySpan类的onClick方法,根据上述目标页面的Activity类名跳转至当前应用程序的目标页面。
[0023]采用图1所示的方法,无需另外定义页面标识,以页面的Activity类名为标识符。因此在当前客户端已经存在目标页面的情况下,新增一个页面跳转指令时,客户端无须做任何修改便可以满足新的需求。
[0024]在优选实施过程中,对于客户端,首先需要实现文本高亮和响应用户点击事件的文本样式 Java 类(ActivitySpan 类),ActivitySpan 类继承于 android, text, style.ClickableSpan类。并覆盖updateDrawState方法实现文本的高亮,即设置文本的颜色和下划线样式。还需实现onClick方法,完成响应用户的点击事件,跳转到目标页面。ActivitySpan类的类图如图2所示。其中方法init()的作用是从成员URI中解析出指令标题title (即指令在消息文本中的显示内容)和目标页面的Activity的类名className。
[0025]其中,上述消息文本可以包括但不限于:一个或多个上述指令标识符,上述指令标识符与该指令标识符后面的内容信息通过不可见字符隔开。
[0026]在优选实施过程中,一条消息中可以插入多条指令标志符。如果消息文本中指令标志符的后面还有其他内容信息,则需要用一个或多个空格、换行等不可见字符隔开。
[0027]优选地,根据上述目标页面的Activity类名跳转至目标页面时,还包括:将上述URI传入目标页面;上述目标页面从上述URI中提取与该目标页面相关的参数并处理。
[0028]在优选实施过程中,URI除了包含:指令在消息文本中的显示内容(指令标题)以及目标页面的Activity类名,还可以符加一些额外的参数,这些额外的参数目标页面(目标Activity)可能需要,但对于指令标识符来说不是必须的。具体地,可以在指令标识符中作扩展,在指令标识符中符加一些额外的参数。但这些额外的参数可以与目标Activity有关。所以把URI传入目标Activity,让目标Activity处理这些额外参数。
[0029]优选地,上述扩展后的指令标识符的格式如下:Scheme://Authority/activity ?title = Title&class = ClassName[&Query];
[0030]其中,Scheme和Authority为协议定义好的定值;Title和ClassName为变值,随着不同的页面跳转指令而不同,其内容需要进行URL编码。Title为上述指令在消息文本中的显示内容,上述显示内容高亮显示,并响应用户的点击操作执行页面跳转操作,ClassName为上述目标页面的Activity的类名;[&Query]为变值,是可选项,为上述目标页面相关的参数,参数数量大于或等于0。Query的参数内容同样需要进行URL编码。
[0031]例如,以下是指令标志符实例:
[0032]XXX://example, com/activity ? title = Title&class = com.example.MainActivity
[0033]xxx://example, com/activity ? title = Title&class = com.example.MainActivity&at = ActivityTitle&st = Subtitle
[0034]例如,以下为一条带有页面指令的消息实例:
[0035]这是一条页面跳转消息,点击xxx://example, com/activity ? title = % E4%B8% BB% E9% A1 % B5% E9% 9D% A2&class = com.example.MainActivity 返回到主页面。
[0036]优选地,步骤S103中根据上述目标页面的Activity类名跳转至目标页面之后,还可以包括:检测当前是否有抛出异常;在存在抛出异常时,捕获上述异常。
[0037]以下结合图3进一步描述上述优选实施过程。
[0038]图3是根据本发明优选实施例的应用程序的页面跳转方法的流程图。如图3所示,该应用程序的页面跳转方法包括:
[0039]步骤S301:当用户点击了消息文本中的指令标题,客户端接收到用户的点击事件。
[0040]步骤S303:客户端的ActivitySpan类的onClick()方法将被调用,在该方法中,
根据成员className--目标页面的Activity的类名打开其Activity,并将uri传入目标
Activity,由Activity内部取出可能存在的额外参数。
[0041]步骤S305:检测是否有异常抛出,如果是,执行步骤S307,否则,执行步骤S309。如果目标Activity打开失败(如果目标Activity不存在),程序将会抛出异常。
[0042]步骤S307:捕获上述异常,以免程序崩溃。
[0043]步骤S309:确定目标Activity打开成功(即成功跳转到目标页面)。
[0044]优选地,在接收来自于服务器的插入有指令标识符的消息文本之后,响应用户对上述显示内容的点击操作之前,还可以包括:对上述消息文本解析得到上述指令标识符;将
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1