摘要:IOS中,必须经过用户同意才能访问用户的地理位置(CLLocationManager),这一过程是由系统控制的,在第一次请求时为自动询问用户,如果能够向用户展示自己使用坐标的原因,而非恶意访问,用户体验会好很多。 CLLocationManager有一个purpose的属性,通过它就可以在请求中加上自己的信息,这个属性从ios 3.2开始就有了。 CLLocationManager *_locmanager = [[CLLocationManager alloc] init]; _locmanager.delegate = self; _locmanager.purpose ...
阅读全文
摘要:青岛公交查询是一款可以实时查询青岛市公交到站时刻的iPhone应用,功能很吸引人,数据也够准确,可惜原作者可能是不常坐公交的人,原作在使用上很不方便。没办法,自己花了点时间,在原应用的基础上做了些修改,以易用为主要目的。站点查询放在首页,直接获得结果,并且可以同时查看多个线路站点。 使用Search Bar和Search Display Controller结合来查找路线。线路站点列表中,可以添加自己需要经常查看的站点,也可以同时查看多个站点 接下来考虑,还可以加上自动刷新,语音报站,等功能。怕惹麻烦,先不公开ipa,有可能的话,先把代码放到GitHub上。
阅读全文
摘要:苹果的推送服务的设计非常优秀和巧妙,开发者将消息发送到苹果的APN服务器,APN服务器将消息转发到设备上,设备与APN保持一个长连接即可,即保证了消息的实时性,又节省了系统资源,更省电。相比之下,Android这个粗放管理的,耗电大户平台,直到2.2后才添加了类似的推送服务,而且还被墙了。苹果的推送模式如下图所示:iOS应用首先要请求用户允许推送通知,用户允许后,应用会获得一个32字节的token。应用开发者要推送通知到用户的设备时,把消息和token一起发送给APN服务器,APN服务器根据token来将消息发送到用户的设备上。本文主要介绍如何通过Openssl来将推送消息发送到APN服务器,
阅读全文
摘要:由于我国国情,在MapView上做标记添加Annotation时总会与实际GPS坐标有几百米的偏差。同样,在根据GPS点,做反向解析地址时也是偏移过的地址。MapView有一个属性是showsUserLocation,当置为YES时,地图上会显示一个蓝色的点,标志用户的当前位置。这个蓝色的点的位置与用户的实际位置是相符的。显然是,MapView把用户的实际坐标做了偏移,从而在偏移的地图上显示出正确的位置。如果能得到这个蓝色点的坐标,再与用户实际GPS坐标相比较,就能得到地图在当前位置的偏移值。MapView有一个MKUserLocation类型的属性userLocation。这个属性里又有一个
阅读全文