起因:
公司业务已经长达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。
若读者有更好的建议,请在评论区回复评论!