一种数据交互方法、系统、及一种客户端的制作方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别是涉及一种数据交互方法、系统、及一种客户端。
【背景技术】
[0002] 随着移动互联网的发展以及智能手机的普及,APP开始在各种业务场景中发挥着 越来越重要的作用。一般情况下,客户端需要根据业务逻辑规则对用户输入的数据进行简 单的校验和处理,如注册的用户名长度必须大于或等于6,否则弹出提示框。如果用户输入 的数据满足既定的规则,则将数据通过http请求传输给服务器,服务再将处理结果返回给 客户端,比如注册成功,则返回用户信息。
[0003] 而随着业务规则改变,客户端与服务端数据交互与处理的方法也需要进行相应的 调整。一般的处理方法是:
[0004] (1)修改客户端(iOS)代码,以满足当前业务规则;
[0005] (2)提交APP store,等待审核,时间较长。
[0006] (3)审核失败,重走(1)的流程;审核通过,新版APP上架。
[0007]苹果APP store审核(包括上架审核和更新审核)有一套完整、严格的流程和制度, 所以审核时间较长,并且无法预估。(少则可能一个星期内,多则可能三四个星期甚至更 久。)更新审核通过之后,很可能此时业务规则又发生改变,新版本的代码已经不适应当前 系统。
[0008] 当然如有紧急需求,也可以申请"加速APP审核"。审核时间比普通审核更快。但时 间仍不确定,并且需要说明原因。否则要求会被拒绝。
[0009] 所以,现在的更新机制存在很多问题:更新周期长,时间不确定,并且需要额外花 费很多精力去处理更新流程。如果遇到紧急情况或者业务频繁变化,上述方法显然无法满 足需求。
【发明内容】
[0010] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据交互方法、系统、 及一种客户端,用于解决现有技术中客户端与服务端数据交互效率低、操作繁杂的问题。
[0011] 为实现上述目的及其他相关目的,本发明提供一种数据交互方法,应用于包括客 户端及与所述客户端通信的服务端的系统中,包括如下步骤:所述客户端根据一执行命令, 通过UlWebView的方法从所述服务端中调取相应的JavaScript代码进行数据处理;所述服 务器根据UlWebView的代理方法,通过JavaScript向所述客户端传递数据或请求本地操作。
[0012] 于本发明的一具体实施例中,所述数据处理包括数据校验和/或数据计算。所述数 据校验包括对输入的用户名长度、用户名格式、或邮箱格式中的一种或多种的校验。
[0013] 于本发明的一具体实施例中,所述服务器根据UlWebView的代理方法,通过 JavaScript向所述客户端传递数据或请求本地操作的步骤包括:所述服务端与所述客户端 预先约定相互交互的统一资源定位符的协议名、操作命令、以及参数;所述客户端根据通过 UlWebView方法加载的所述统一资源定位符进行解析,以获得协议名,并执行相关操作。
[0014] 于本发明的一具体实施例中,所述客户端根据通过UlWebView方法加载的所述统 一资源定位符进行解析,以获得协议名,并执行相关操作的步骤包括:当所述客户端判断加 载的所述统一资源定位符的协议名为预先约定的协议名时,解析相应的操作命令和参数, 并根据解析后的所述操作命令的参数,执行相应的操作。
[0015] 为实现上述目的及其他相关目的,本发明还提供一种数据交互系统,应用于包括 客户端及与所述客户端通信的服务端,其中,所述客户端根据一执行命令,通过UlWebView 的方法从所述服务端中调取相应的JavaScript代码进行数据处理;所述服务器用以根据 UlWebView的代理方法,通过JavaScript向所述客户端传递数据或请求本地操作。
[0016] 于本发明的一具体实施例中,所述数据处理包括数据校验和/或数据计算;所述数 据校验包括对输入的用户名长度、用户名格式、或邮箱格式中的一种或多种的校验。
[0017] 于本发明的一具体实施例中,所述服务器根据UlWebView的代理方法,通过 JavaScript向所述客户端传递数据或请求本地操作的操作包括:所述服务端与所述客户端 预先约定相互交互的统一资源定位符的协议名、操作命令、以及参数;所述客户端根据通过 UlWebView方法加载的所述统一资源定位符进行解析,以获得协议名,并执行相关操作。
[0018] 于本发明的一具体实施例中,所述客户端根据通过UlWebView方法加载的所述统 一资源定位符进行解析,以获得协议名,并执行相关操作的操作包括:当所述客户端判断加 载的所述统一资源定位符的协议名为预先约定的协议名时,解析相应的操作命令和参数, 并根据解析后的所述操作命令的参数,执行相应的操作。
[0019] 为实现上述目的及其他相关目的,本发明还提供一种客户端,应用于如上任一项 所述的数据交互系统中,所述客户端与一服务端进行通信,其中,所述客户端根据一执行命 令,通过UlWebView的方法从所述服务端中调取相应的JavaScript代码进行数据处理。
[0020] 如上所述,本发明的一种数据交互方法、系统、及一种客户端,令所述客户端根据 一执行命令,通过UlWebView的方法从所述服务端中调取相应的JavaScript代码进行数据 处理。且所述服务器还可以根据UlWebVi ew的代理方法,通过JavaScript向所述客户端传递 数据或请求本地操作。即在交互的业务规则发生快速变化的情况下,不需要修改更新客户 端代码,只需要修改服务端的JavaScript代码即可,从而避免了客户长时间的更新周期,能 够快速实现系统迭代。且服务器主动调取客户端本地操作(接口)的方法,能够处理复杂的 业务事件,实现客户端和服务端的双向交互,且数据交互灵活。
【附图说明】
[0021] 图1显示为本发明的数据交互方法在一具体实施例中的流程示意图。
[0022] 图2显示为本发明的数据交互系统在一具体实施例中的结构示意图。
[0023] 元件标号说明
[0024] 11 客户端
[0025] 12 服务端
[0026] S11、S12 步骤
【具体实施方式】
[0027]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施 例中的特征可以相互组合。
[0028]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构 想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸 绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也 可能更为复杂。
[0029]请参阅图1,显示为本发明的数据交互方法在一具体实施例中的流程示意图。请参 阅图2,显示为本发明的数据交互系统在一具体实施例中的模块示意图。
[0030] 图1所示的数据交互方法,应用于如图2所示的数据交互系统中,包括客户端11及 与所述客户端11通信的服务端12的系统中,包括如下步骤:
[0031] S11:所述客户端11根据一执行命令,通过UlWebView的方法从所述服务端12中调 取相应的JavaScript代码进行数据处理。JavaScript是一种广泛用于客户端的轻量级的脚 本语言,功能强大,安全简单。使用UlWebView加载服务端的JavaScript代码,将一些数据放 在客户端进行处理、验证,能减少网络传输。优选的,其中,所述数据处理包括数据校验和/ 或数据计算。于本发明的一具体实施例中,所述数据校验包括对输入的用户名长度、用户名 格式、或邮箱格式中的一种或多种的校验。所述客户端11例如为智能手机或平板电脑等具 有数据处理以及数据交互能力的电子设备。
[0032] 具体应用例如为:
[0033]客户端11进行数据校验,如检测用户输入的用户名长度、用户输入的邮箱格式是 否正确。下面以检测用户输入的用户名长度为例:
[0034] 1)服务端12的JavaScript代码示例,如果用户输入的的用户名(userName)长度大 于或等于6,则返回"success",表示输入合法;否则返回"fail" :
[0036] 客户端11直接调用JAVASCRIPT,根据返回的结果(result)进行数据校验:
[0037] NSString*result=[_webView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@〃userNameLength(' );〃,userName]];
[0038] 如果业务规则调整,则修改JAVASCRIPT代码中的userNameLength方法即可。
[0039] 2)客户端进行数据计算,原理同上,也是通过UlWebView的 stringByEvaluatingJavaScriptFromString 方法调取服务端的 JAVASCRIPT代码进行计算。
[0040] 即当系统业务规则发生改变时,无需修改客户端11代码,不用提交APP store进行 更新审核。只需在服务端12修改JS代码,缩短了更新时间。
[0041 ]所述数据交互方法还包括以下步骤:
[0042] S12:所述服务器12根据UlWebView的代理方法,通过JavaScript向所述客户端11 传递数据或请求本地操作。
[0043] 具体的,所述服务器根据UlWebView的代理方法,通过JavaScript向所述客户端
11 传递数据或请求本地操作的步骤包括:所述服务端12与所述客户端11预先约定相互交互的 统一资源定位符的协议名、操作命令、以及参数;所述客户端11根据通过UlWebView方法加 载的所述统一资源定位符进行解析,以获得协议名,并执行相关操作。
[0044]其中,优选的,所述客户端11根据通过UlWebView方法加载的所述统一资源定位符 进行解析,以获得协议名,并执行相关操作的步骤包括:当所述客户端11判断加载的所述统 一资源定位符的协议名为预先约定的协议名时,解析相应的操作命令和参数,并根据解析 后的所述操作命令的参数,执行相应的操作。
[0045] 具体应用如下:
[0046]服务端12向客户端11请求本地操作。在传统的APP与服务器的交互模式中,只能由 客户端主动向服务端发起网络请求,然后根据服务返回的数据进行相关处理,而本发明提 供了一种服务端12向客户端11本地发起操作命令的方法。这里主要通过对UlWebView的 delegate (代理)方法-(BOOL) webView: shouldStartLoadWithRequest :navigationType:进 行处理来实现的。
[0047] 首先服务端12与客户端11约定好相关的协议串,协议串的格式如下:
[0048] XXX://command#「paraml":"valuel" ,param2":"value2" …}
[0049] xxx是协议名,co_and是本地操作(接口),后面是参数表(0或多个)。
[0050] 在传统的交互模式中,服务端响应客户端的请求、返回数据之后,双方的交互就已 经结束。而本方案中,服务端12可以根据实际需求,在处理完数据之后,主要调取客户端11 本地操作(接口),发起操作命令,使双方数据交互更加灵活,能够处理复杂的业务请求。
[0051] 如下业务场景:服务端12完成注册请求之后,返回用户信息。
[0052]传统的交互模式:客户端根据服务器返回的用户信息进行处理,如果用户资料不 完整(如年龄为空),则跳转到更新资料页面;如果用户资料完整,则提示用户注册成功,并 且保存用户信息。之后处理规则发生变化,如果非关键资料为空,不需要跳转到更新资料页 面,直接提示用户注册成功,并且保存用户信息。这时就需要修改客户端本地代码,提交APP store审核进行版本更新。
[0053]而本方案提供了 一个快捷方法,具体为:
[0054] 1服务端12完成注册请求之后,如果非关键资料为空,不需要跳转到更新资料页 面,直接提示用户注册成功,并且保存用户信息,则可以使用JAVASCRIPT指定协议:
[0055] 〈script〉
[0056] window·location·assign("test://saveUserData#{' userName ':' zhangsan ',
[0057] 〈/script〉
[0058] 2.如果发现非关键资料为空,需要跳转到更新资料页面,则可以使用JAVASCRIPT 指定协议:
[0059] 〈script〉
[0060] window·location·assign("test://updateUserData#{' userName ':' zhangsan '},,);
[0061] 〈/script〉
[0062] 对应的客户端1 1 ( iOS)使用UlWebView的代理方法-(BOOL)webView : shouldStartLoadWithRequest: navigationType:进行代码处理:
[0063] 1 ·先获取网页url的scheme:
[0064] NSString*scheme = [url scheme];
[0065] 如果scheme为http或者https表示是正常的页面请求,则正常加载页面;如果 scheme为事先约定好的协议"test",则表示这是服务器在请求客户端11进行本地操作,贝1J 进行第2步;
[0066] 2.解析host(即操作命令)和参数:
[0067] NSString*host = [url host];//操作命令
[0068] NSString氺parameter= [url fragment];//参数
[0069] 根据host的名称进行相关代码处理,如host为"saveUserData",则将参数 parameter缓存到本地;如果如host为"updateUserData",则跳转到资料页面。业务规则虽 然发生改变,但不需要修改客户端11代码,无需走更新流程。
[0070] 综上所述,本发明的一种数据交互方法、系统、及一种客户端,令所述客户端根据 一执行命令,通过UlWebView的方法从所述服务端中调取相应的JavaScript代码进行数据 处理。且所述服务器还可以根据UlWebVi ew的代理方法,通过JavaScript向所述客户端传递 数据或请求本地操作。即在交互的在业务规则发生快速变化的情况下,不需要修改更新客 户端代码,从需要修改服务端的JavaScript代码即可,从而避免了客户长时间的更新周期, 能够快速实现系统迭代。且服务器主动调取客户端本地操作(接口)的方法,能够处理复杂 的业务事件,实现客户端和服务端的双向交互,且数据交互灵活。所以,本发明有效克服了 现有技术中的种种缺点而具高度产业利用价值。
[0071] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟 悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因 此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完 成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1. 一种数据交互方法,其特征在于,应用于包括客户端及与所述客户端通信的服务端 的系统中,包括如下步骤: 所述客户端根据一执行命令,通过UlWebView的方法从所述服务端中调取相应的JavaScript代码进行数据处理; 所述服务端根据UlWebView的代理方法,通过JavaScript向所述客户端传递数据或请 求本地操作。2. 根据权利要求1所述的数据交互方法,其特征在于,所述数据处理包括数据校验和/ 或数据计算,所述数据校验包括对输入的用户名长度、用户名格式、或邮箱格式中的一种或 多种的校验。3. 根据权利要求1所述的数据交互方法,其特征在于:所述服务端根据UlWebView的代 理方法,通过JavaScript向所述客户端传递数据或请求本地操作的步骤包括: 所述服务端与所述客户端预先约定相互交互的统一资源定位符的协议名、操作命令、 以及参数; 所述客户端根据通过UlWebView方法加载的所述统一资源定位符进行解析,以获得协 议名,并执行相关操作。4. 根据权利要求3所述的数据交互方法,其特征在于:所述客户端根据通过UlWebView 方法加载的所述统一资源定位符进行解析,以获得协议名,并执行相关操作的步骤包括: 当所述客户端判断加载的所述统一资源定位符的协议名为预先约定的协议名时,解析 相应的操作命令和参数,并根据解析后的所述操作命令的参数,执行相应的操作。5. -种数据交互系统,其特征在于,应用于包括客户端及与所述客户端通信的服务端, 其中,所述客户端根据一执行命令,通过UlWebView的方法从所述服务端中调取相应的 JavaScript代码进行数据处理;且所述服务端根据UlWebView的代理方法,通过JavaScript 向所述客户端传递数据或请求本地操作。6. 根据权利要求5所述的数据交互系统,其特征在于,所述数据处理包括数据校验和/ 或数据计算;所述数据校验包括对输入的用户名长度、用户名格式、或邮箱格式中的一种或 多种的校验。7. 根据权利要求5所述的数据交互系统,其特征在于:所述服务端根据UlWebView的代 理方法,通过JavaScript向所述客户端传递数据或请求本地操作的操作包括: 所述服务端与所述客户端预先约定相互交互的统一资源定位符的协议名、操作命令、 以及参数; 所述客户端对通过UlWebView方法加载的所述统一资源定位符进行解析,以获得协议 名,并执行相关操作。8. 根据权利要求7所述的数据交互系统,其特征在于:所述客户端对通过UlWebView方 法加载的所述统一资源定位符进行解析,以获得协议名,并执行相关操作的操作包括: 当所述客户端判断加载的所述统一资源定位符的协议名为预先约定的协议名时,解析 相应的操作命令和参数,并根据解析后的所述操作命令的参数,执行相应的操作。9. 一种客户端,其特征在于,应用于如权利要求5~8中任一项所述的数据交互系统中, 与所述服务端进行通信,其中,所述客户端根据一执行命令,通过UlWebView的方法从所述 服务端中调取相应的JavaScript代码进行数据处理。
【专利摘要】本发明提供一种数据交互方法、系统、及一种客户端,令所述客户端根据一执行命令,通过UIWebView的方法从所述服务端中调取相应的JavaScript代码进行数据处理。且所述服务器还可以根据UIWebView的代理方法,通过JavaScript向所述客户端传递数据或请求本地操作。即在交互的业务规则发生快速变化的情况下,不需要修改更新客户端代码,只需要修改服务端的JavaScript代码即可,从而避免了客户长时间的更新周期,能够快速实现系统迭代。且服务器主动调取客户端本地操作(接口)的方法,能够处理复杂的业务事件,实现客户端和服务端的双向交互,且数据交互灵活。
【IPC分类】G06F9/54
【公开号】CN105487932
【申请号】CN201510824215
【发明人】肖欣然
【申请人】上海斐讯数据通信技术有限公司
【公开日】2016年4月13日
【申请日】2015年11月24日