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。

 

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


打赏

分享到:

最近浏览
2037785132017年9月13日
最代码贡献等级说明
lanmaokyle2017年8月8日
最代码贡献等级说明
tb21242482017年5月2日
暂无贡献等级
Calvin84222017年4月14日
最代码贡献等级说明
最代码助手2017年4月8日
最代码贡献等级说明
12570404642017年4月5日
暂无贡献等级
jacksonss2017年3月7日
暂无贡献等级
liukai0072017年2月27日
暂无贡献等级
hackxhao2017年2月23日
最代码贡献等级说明
空中飞尘2017年2月23日
最代码贡献等级说明
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友