此项目本来是一个Spring Boot+html5的标准前后端分离的应用,意在学习Spring。但是,由于Spring无法部署以及定位功能在浏览器端不稳定的原因,最终写了两个后端、一个浏览器端和一个客户端。
从bookmanager复制过来模板,加以修改
建立到了基本的目录结构
主要编写前端
完成基本功能,前后端能搭配起来运行一下了
部署Spring到服务器失败,开始编写 Asp.Net Web Api 2 后端
基本完成Asp.Net后端,对前端进行了调整以适配后端
部署前后端到了服务器
由于测试网页版的《位置共享》发现定位精度和频率十分不可靠,决定编写Android版本
从《GIS工具箱》复制代码,开始修改
编写Android端的主要功能、界面、地图逻辑等
完成Android端的网络通信
修改、完善Android端
基本完成Android端主要功能
转换大多数类到Kotlin语言
###20190814
转换所有类到Kotlin语言
新增间歇定位功能
##20190815
Asp.Net、浏览器、Android三端同步修改
增加精度显示和传输
修改“无数据”的表示为null而不是-1
支持了获取所有位置信息时指定“保留时间”参数,用于指定获取多久之前以后的用户数据。网页端不提供修改时间,默认为30分钟。Android端提供修改对话框
应用上传小米应用商店
##20190818
重构开始,计划修改为三页布局、修改账户登陆方式等
基本完成三页布局的基础
消除了静态Context,防止内存泄漏
##20190822
尝试了设置界面,完成了三项设置的UI和逻辑
##20190823
基本完成对后端和数据库的修改
修改了用户Model结构,部分字段名字
取消了注册、修改用户名和组名方法,新增注册、登录、验证/修改用户信息方法
使用GUID字符串的Token作为登陆验证
Android端基本完成用户登录的界面和逻辑
##20190824
恢复了定位间隔和保留时间的设置项
恢复了关于和退出
基本恢复程序到可用的状态,缺失修改密码、组和显示名
##20190825
新增三个页面不同的ActionBar按钮
完成Person页面列表的整体框架
##20190826
基本完成Person页面的数据显示
##20190827
完成”消息“数据库表
修复了修改组无效的BUG
开始增加Osmdroid地图模块的支持,日后可切换。基本完成地图的显示、定位显示、成员位置显示
完善了OSM地图模块,恢复到Esri地图的所有功能
控制器修改返回值为IHttpActionResult,方便返回HTTP Code
识别到401代码时,自动跳转到登录Activity
修改了默认的标题栏
花了巨长的时间来修复Android发起的请求参数无法被后端识别的问题,和之前的版本一个个比较,最后发现是不小心User传了一个不该传lastUpdateTime参数,由于JAVA和C#的序列化程序不同,导致序列化失败的问题
修改标题栏标签左对齐
尝试修复标题栏按钮有时不显示的BUG
增加启动页背景图掩盖启动时间长的问题
由于下面的详情栏有时候上不来,加上和全面屏可能有点冲突,所以干脆去掉了,暂时先不能查看详细信息。计划之后获取位置与成员进行合并,重写后端
完成对后端Token生成、验证方式的修改,改为使用AES加密用户名和时间而非随机生成
完成对后端“GetAll”方法的修改,合并了GetGroupMembers方法
重新修改了“GetAll”方法,使用User的外键来获取Location实体
Android端完成了对后端修改的适配
基本完成修改网页版到重新可以运行的阶段
基本重新完成网页版的所有功能,重新开放网页版
网页版新增定位开关
网页版修复了一些BUG
修复了后端中,若一个用户没有上传任何定位信息,则会在前端获取信息时无论如何都被分到任何组的BUG
根据之前将时间筛选移植前端的改变,修改了Android端
完善了崩溃日志收集,日志将会保存在外置缓存文件夹
Android端取消了打开时的Token检测
Android端增加了用户信息列表的项内边距
为网页端新增了定位图标
后端新增隐藏最后一次定位记录的功能,Android实现了该功能
Android端修复了几个BUG:
- 高版本Android无法使用后台定位(增加了后台定位权限声明)
- 默认底图不可用
- 由于ArcGIS Runtime的BUG,导致切换TAB时会部分区域黑屏(通过升级到100.10解决)
- osm失效(增加了读写存储权限、允许了HTTP)
后端进行了大幅修改:
- 更新到.NET6
- 修改认证方式为Filter
- 将请求分为了三个控制器
- 将请求数据改为Dto,而不是Model
- 部分请求改为GET,之前全部为POST
- 一些其它的修改
同步修改了Android端