@Rookie
2021-06-21T11:16:27.000000Z
字数 3173
阅读 609
赢海
目前主流框架React Native、 Flutter、uni-app等,都是通过一套代码库高效构建多平台,支持移动、Web、桌面等多端适配, 基于现有人员技术栈,只讲Flutter 和 uni-app 来进行比较
Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
基于现有业务理解, 目前在船上可能网络环境不够稳定,有时候可能是处于弱网或者无网状态
每当网络质量发生变化时来改变一些策略。比如网络延迟ping值大于 400毫秒的环境下,就设置确认为无网络状态,转为本地待同步请求,从而提升 App 的网络体验, 防止数据包丢失。
在请求中网络波动时候,请求时间可能会加长,这里做一个超时时间机制, 比如如果请求时间大于10s,这里也把这个请求也转换本地待同步请求。
在没有网络的情况下,在业务数据处理的时候,依据本地缓存的数据进行本地请求记录,联网之后在进行手动请求数据同步
- 无网状态进行本地定时推送提醒他进行数据上传同步
- 数据上传暂定都是手动来操作上传,这样可以对本地单据的操作修改,上传减少网络波动影响数据偏差
- 上传失败后在(进行上传失败标记)重新进行数据上传.
添加远程推送, 根据不同船靠岸时间进行远程推送升级安装APP
联网状态下打开APP如果有升级,需强制升级安装APP
无网状态下通过远程发送apk进行局域网升级安装APP
iOS更新APP主要是进行在App Store 进行升级,其余升级方式有APP分发方案. 目前可使用方案还是只能在联网状态下进行升级
添加远程推送, 根据不同船靠岸时间进行远程推送升级安装APP
联网状态下打开APP如果有升级,需强制升级安装APP
1、支持扫码连服务,APP在首次打开时需要连接服务,PC端首页还有二维码,扫码后连接服务,连接失败的处理
APP首次使用需要链接外部服务器同步数据(备选方案吧基础数据打包的APP里面,首次使用可以不用同步)
扫码后链接服务器失败,这个数据从本地查询数据,如果查询不到就强制同步下载基础数据
2、数据导入导出功能,无网模式,很有可能船上没有无线
导入导出必须连接到船上的局域网服务器
3、数据同步格式,Zip?Dat?是否加密?
数据格式首次暂定 JSON 下载, 下载到APP后新建数据库
再次同步基础数据可以进行差异化同步(这里涉及到多次差异化问题)
是否加密,这个敏感信息可以进行加密处理,(和服务端对接一种加密规则即可)
4、什么状态的数据才能同步,出库单制作完成?
出库入库单制作完成后, 联网状态进行同步
5、自动同步需要加开关设置,自动同步Or手动同步?
前期可以使用手动同步,自动同步方案待定
6、异常处理(没有基础数据是否能工作,同步网络超时同步是否成功等)
异常处理没有基础数据(这里可以考虑APP里面打包基础数据)
同步失败后回溯上次数据
7、不用判断自动切换本地还是远程,所有默认走本地,通过自动同步同步过去。
这个可以,所有数据操作都保存到本地,通过手动同步上传数据
8、首次不直接提示下载数据,扫码连接后提示下载数据
首次可以吧数据打包到APP里面,
9、Android升级示意图,岸基->船端Server->App版本检测->升级
需要进行流程场景测试
10、扫码用谁家的SDK,二维码尺寸,数据是否加密(防止使用其他软件扫码查看)
扫码sdk 暂定, 因为开发语言方案还没定
二维码尺寸需要了解看下里面有多少数据, 然后结合客户需要定义大小尺寸
数据加密敏感信息可以进行加密处理