混合应用技术选型
越来越多的公司选择使用 hybrid开发模式来做app,我司在一些个别项目上也采用了这样的架构,目前来看整体还可以,但是也是有很多的坑要去填。
目前开发APP的三种形式:
1、客户端(纯原生)+服务端(php/java/...)
2、客户端(原生+html5)+服务端(php/java/...)
3、客户端(webap(SPA))+服务端(node环境+vue/react/...)
方案一应该是目前主流公司的标准开发模式,我们公司以前的产品也大都以这种方式来进行;
优点:体验好,客户端操作稳定;
缺点:发布版本升级太麻烦
方案二采用原生+h5的方式来配合,使用的原则是用户使用的一级页面或者主框架页面采用原生语言来开发,比如:登录、首页、我的账户首页等;所有的二级页面均采用H5开发。
优点:开发速度快,升级方便
缺点:原生和H5交互比较复杂
方案三使用一些SPA框架,比如vue、react等。利用这些框架以组件的形式进行开发页面切换成不同的组件有利于复用,服务端必须使用node环境包装一层再和服务端交互,或者直接使用node做服务端
优点:开发速度快,页面利用率高
缺点:目前来开没有网络等情况交互不友好,生产使用情况很少
我们根据调研结果采用了第二种方案,但是使用第二种方案又会面临很多问题:
1、原生和H5用户状态如何来同步?
2、原生和H5如何相互交互使用
3、如何保证信息不泄露
解决方案:
1、用户登录后下发token,用户在客户端登录后将token存储,原生请求带上token;每次点击H5页面请求的时候将token存入cookie,浏览器会自动带上cookie以识别用户状态。
2、使用WebViewJavascriptBridge来解决H5调用原生接口的问题。