[请教]iOS APP 的定位机制该怎样设计?

2015-08-10 14:08:21 +08:00
 Sunnyyoung
1. 被动方式:由用户点击事件触发定位,并更新位置信息保存下来,即时更新即时使用,更新失败的时候才用旧的位置信息
2. 轮询方式:每隔一段时间自动更新位置信息保存下来,需要用到位置信息的时候直接读取已储存的位置信息

BTW,想知道微信QQ等APP的定位机制是怎样的~
2597 次点击
所在节点    iDev
4 条回复
dorentus
2015-08-10 15:55:12 +08:00
我觉得 1 是比较符合直觉且可能更省电的方式,可以保证取到的一定是最新的位置,并且也能正常地在定位被禁用时提醒用户。

用 2 这种方式,用户也许会奇怪为什么开着你的应用的时候定位图标会定期亮。

另外,除非你的应用是类似游戏那种用户一直开在前台的,否则 2 的“优化”也没啥意义。这种优化应该由系统本身负责而不是由单个应用自己来做。
Sunnyyoung
2015-08-11 09:18:02 +08:00
@dorentus
嗯,但是1的话也会有些弊端,例如iOS的定位不一定每次都能成功的,失败情况有两种:直接失败和定位超时,如果定位超时获取之前成功定位的旧定位信息,这个过程就是由用户来等待这个超时的时间,降低了用户体验

我也有想过把旧数据持久化保存下来,用户点进这个页面先显示旧的持久化内容,等定位信息更新成功之后再刷新一遍,不知道这种会不会好一点
lawder
2015-08-11 11:35:05 +08:00
@Sunnyyoung 观察了一下,微信在个人信息的地区设置里用的是即时定位,定位失败提示用户这种方式。其实就我使用 iPhone 的情况来看,App 在开启定位权限情况下定位失败的情形其实比较少见,所以我觉得缓存旧数据的意义不是太大。
Sunnyyoung
2015-08-11 16:24:38 +08:00
@lawder
再仔细观察平时使用微信的时候即使无任何操作,右上角都会有一个定位提示(当然不排除是系统等Apps调用定位,但是个人觉得不会那么巧吧=。=很多时候我都会发现在使用微信过程中会有定位标志)

定位失败这个问题是有的,不算多也不算少,例如在地铁上会经常提示定位失败(定位服务正常开启,网络服务正常)甚至从地铁中走出来,定位失败这个问题也会持续一阵子。另外在室内室外发生定位失败这种情况比较少出现,每次出现就会持续一阵子~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/212092

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX