Smail_的gravatar头像
Smail_ 2016-12-29 11:34:23
一些关于前后端(APP与SERVER)协调的构思及实施

起因:

公司业务已经长达8年了,堆积了很多的问题亟待解决!

最最重点----跨版本兼容问题!

思考:

我们有很多的第三方资源,资源来自于爬虫的抓取,但是他们的变化是我们不能管控的,他们一变化了,我们就必须的最快时间升级客户端,不然线上的版本都不能使用已经变化了资源,面对的结局就是:用户体验下降,用户流失,收益下降......

为什么我们不能跨版本兼容到线上的版本呢?

 

于是有了第一个构思,这个构思已经在APP上得到实施。

APP上统一使用webview+html/js的方式来做解析,服务端提供这个html/js(肯定是密文的)。

然而,这里面临一个问题:第三方资源的接口变化了,不支持JS回掉函数时,这种方式就面临被OUT。

 

于是有了第二个构思,这个构思在APP上得到了部分实施,后期还待继续跟进和商议。

第二个构思:APP组件化。

APP端所有的模块全部做成功能组件,根据服务器的调用协议(密文JSON),来调用对应的模块,完成任务。

密文JSON:约定客户端需要几步动作(ArrayList),每步执行哪个request,method type,request data,header,respone,how to get the result param,the next request need which params and this param where can be used(url/header/data)。

若客户端需要对第三方资源解密,提交对应的密文到服务器或调用webview+js完成解密(这一步带实施和商议)。

 

最后:这乱七八糟的都做了,为啥不用html5开发app?

解释:出于最基础的安全考虑(不过这也是防小牛,防不住大神),并且JS有局限,有的第三方资源不允许JS callback。

 

若读者有更好的建议,请在评论区回复评论!


打赏
最近浏览
xxljxgz  LV21 2019年10月14日
安安an  LV17 2019年7月23日
203778513  LV9 2017年9月13日
lanmaokyle  LV2 2017年8月8日
tb2124248  LV12 2017年5月2日
Calvin8422  LV5 2017年4月14日
最代码助手  LV6 2017年4月8日
1257040464 2017年4月5日
暂无贡献等级
jacksonss  LV2 2017年3月7日
liukai007  LV2 2017年2月27日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友