美文网首页fish的猿粪收藏Swift_Learn
宝宝别哭,教你用swift写一个app监控你女朋友(上)

宝宝别哭,教你用swift写一个app监控你女朋友(上)

作者: 子祖 | 来源:发表于2016-08-21 23:14 被阅读6993次
    王宝强的事,我们就不多继续八卦拉,对于从未接触过编程的人,可以私信我,教大家复制以下代码即可入门,作为程序猿,我们用swift写一个可以监测女朋友一举一动的app来造福广大男同胞吧,让那些马蓉,金莲等等坏女人动机扼杀在app之下吧!

    这里先说说实现思路,首先需要学习两个API:

    • CoreLocation:

    这个不用多说就是要来获取你的(男)女朋友的定位,并通过设置前后台都使用来全天候监测(他)她的位置信息,拿到准确的经纬度,甚至可以调用该定位附近的摄像头来检查(他)她和什么人在一起

    • HealthKit :

    这个主要用来监视你的(男)女朋友的心率,根据网上的一些系数来确定对方是否在说谎和是否在做“剧烈运动”


    教程主要分两个部分来实现,具体细节可以因人而异进行修改,因为里面涉及搭建一个小型的简单服务器,所以后面我会在教程最后提供一个api给大伙们做测试之用的。通过让另外一半安装我们做的这个app,可以有效地监察对方的一举一动,从而做到防微杜渐,万无一失!
    废话不多说,我先介绍一下CoreLocation的用法

    定位

    • 注意:

    iOS8+定位必须请求获取用户的授权,这里一定要写requestAlwaysAuthorization()这样就能随时监测拉

    import UIKit
    import CoreLocation
    
    class ViewController: UIViewController {
    
        private lazy var mgr : CLLocationManager = CLLocationManager()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // iOS8+定位必须请求获取用户的授权,这里一定要写requestAlwaysAuthorization()这样就能随时监测拉
    
            mgr.requestAlwaysAuthorization()
    
            // 开始定位
            mgr.startUpdatingLocation()
    
            // 设置代理
            mgr.delegate = self
    
            // mgr其他属性的补充
            // 1.设置定位的精确度
            /*
             kCLLocationAccuracyBestForNavigation: 导航精确度(最精确)
             kCLLocationAccuracyBest: 最好精确度(默认)
             kCLLocationAccuracyNearestTenMeters: 10米的误差
             kCLLocationAccuracyHundredMeters: 100米的误差
             kCLLocationAccuracyKilometer: 千米误差
             kCLLocationAccuracyThreeKilometers: 三千米的误差
            */
            // 精确度越高, 越耗电
            mgr.desiredAccuracy = kCLLocationAccuracyBestForNavigation
    
            // 2.设置用于移动多少距离,重新进行定位
            mgr.distanceFilter = 100
        }
    
    }
    
    extension ViewController : CLLocationManagerDelegate {
        func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
            print("定位到用户的位置")
    
            // 1.校验用户是否有位置
            guard let lastLocation = locations.last else  {
                return
            }
    
            // 2.获取具体的信息
            // 2.1.获取用户的经纬度(重要)
            let coordinate = lastLocation.coordinate
            print("纬度:\(coordinate.latitude) 经度:\(coordinate.longitude)")
    
           
        }
    }
    

    通过服务器返回数据计算你和你另外一半的距离

    • 注意:

    这里我写了一个服务器专门监听目标上传的定位

    import UIKit
    import CoreLocation
    
    class ViewController: UIViewController {
    
        private lazy var mgr : CLLocationManager = CLLocationManager()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // iOS8+定位必须请求获取用户的授权
            mgr.requestWhenInUseAuthorization()
    
            // 开始定位
            mgr.startUpdatingLocation()
    
            // 设置代理
            mgr.delegate = self
        }
    
    }
    
    extension ViewController : CLLocationManagerDelegate {
        func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
            print("定位到(男)女朋友的位置")
    
            manager.stopUpdatingLocation()
    
            // 1.校验用户是否有位置
            guard let lastLocation = locations.last else  {
                return
            }
    
            // 2.获取具体的信息
            let coordinate = lastLocation.coordinate
            print("纬度:\(coordinate.latitude) 经度:\(coordinate.longitude)")
    
            // 3.从服务器请求女朋友位置的经纬度(1 = 111km)
            let latitude = 23.1351
            let longitude = 113.370
            let location = CLLocation(latitude: latitude, longitude: longitude)
    
            // 4.计算两个人之间经纬度的距离
            let distance = lastLocation.distanceFromLocation(location)
            print(distance)
        }
    }
    

    这样第一步就完成了,后面还会不断介绍用swift来完善这个app!


    我是子祖,来了就点个赞再走,喜欢就关注我,我还会陆续更新更多项目让大家去练手,或者你有什么语言想了解的都可以和我聊聊!

    相关文章

      网友评论

      • LimMem:小编,为了降低成本,是不是先写篇文章教一下装黑苹果。然后在教一下怎么安装Xcode。然后才有这边文章,能不能走点心:relaxed::relaxed::relaxed:
      • 0c9c9e4bf155:光有上没有下啊
      • 木爺:老哥 没有安卓的吗?
      • 星好唯柔:后边就没啦?
      • ac09423336ec:看标题应该还有下的吧😍
      • e763f1ec1cfe:好无聊啊
      • 2a392233fc62:有demo吗?
      • c1b0d42690c1:666,看来要转做IOS才行了*^_^*
        子祖:@愤斗ing 还会更新更多的教程的
      • Once_Once:你这个调周围摄像头 有点扯吧
        Once_Once:@子祖 恩哈哈
        子祖:@Once_Once 这个是真的可以实现的,只是需要一些权限,不要在乎这些细节,主要学习swift编程
      • 小鲁靠谱:真是与时俱进啊
        子祖:@小鲁靠谱 还会继续更新更多的教程的
      • 一枚小菜鸟:希望写的东西是由浅到深的,我想好好学习学习
        子祖:@一枚小菜鸟 你要看看之前的文章
      • 一枚小菜鸟:五天过去了 你的下呢?
        子祖:@一枚小菜鸟 最近没时间更新,内容主要介绍uihealth的
      • 9e0dcf2a9780:什么时候出下篇文章啊
        子祖:@杨小样913 最近比较忙,到时看一下,材料准备好了
      • TsingQue:首先你得有个女朋友,,,,
        TsingQue:@青雀长歌 ~ 。。 ~继续加班敲代码ing~~~
        子祖:@青雀长歌 学会能赚钱你还怕没有
      • Abson在简书:然而,并没什么卵用,你女朋友关闭了应用,你毛的监听不到,想办法帮他越狱了,或使用非法 API 吧骚年
        子祖:@葱神大大 不要说这些话,都是发发问吸引一下关注,交流一下,有时互相理解就好,没必要动则踩台
        Abson在简书:@子祖 哈哈,看来你最懂技术了 :grin:
        子祖:@葱神大大 请看评论吧,和认真看材料,别自以为聪明喔,懂技术的人会嵌套在一个app里面用的
      • 简单也好:创意很棒
      • nul1:写了10遍了,然后女朋友呢
        子祖:@nul1 哈哈
      • simple1:允许后台定位是很耗电的 到时候手机也会显示什么什么应用一直在你后台使用定位是否关闭 这些怎么处理 而且关机后没启动这个app是不能定位的吧 .... 还有好多问题
        子祖:@simple1 你看评论,有人想到办法了
      • simple1:服务器怎么搞?
        子祖:@simple1 这个百度吧,很多一健装配的
      • 343cea0f7107: 关键是自己写服务器有点蛋疼。。
        子祖:@JcccZ 网上一堆教程
      • 空有回忆:直接集成百度鹰眼,还能查看轨迹哦
        子祖:@空有回忆 可以的
      • OSong:没见UI控件啊
        子祖:@OSong 你截图
        OSong:我按照你的内容尝试在设置代理的位置报了错。可能是我的原因。我等下再尝试
        子祖:@OSong ui每个人不一样啊
      • Joab_Jin:测心率就不了宝宝的,测需要其他穿戴设备或者用手放在摄像头和闪光灯上才能测心率 :relieved:
        子祖:@Joab_Jin 是的
      • ksang:说好的心率呢......
        子祖:@ksang 耐心等待
      • 点亮橘子树:楼主 我是你老板 你被解雇了 原来你的打卡签到都是假的:pensive::pensive::pensive:
        子祖:@Renext_Hu 这个有很多解决办法的
      • Mr凌:我要学:heart_eyes:
        子祖:@Mr凌 看之前文章慢慢学吧
      • Emo_Lin:求DEMO,公司写OA签到时可以用到~!!
        子祖:@Emo_Lin 哈哈
      • I_m赵昊:以上就是全部的代码么
        I_m赵昊:按楼主的方法做,没有弹出提示定位框,怎么处理
        I_m赵昊:@子祖 :grin: 好,楼主一看就很谨慎。哈哈哈哈
        子祖:@I_m赵昊 当然不可能,只是其中一个小功能
      • knowIt: :clap: 总结的很简洁,学起来很爽,能不能总结一点关于HTML5的和JavaScript的 :grin:
      • Figo_OU:请问网络请求在哪里?我看到的只是一个定位功能。数据上传服务器,服务器如何处理?如何推送?
        子祖:@区振轩 服务器这个很简单的,用php或者随便框架一步搭建中
      • 地球的角落儿:you bad bad
        子祖:@地球的角落 哈哈
      • littleDad:没用
      • 2b03c4482187:你有交流群吗,大神,大家可以讨论一番 :blush: :blush:
        2b03c4482187:@子祖 奥,大手子带我们飞︿( ̄︶ ̄)︿
        子祖:@棕树叶 我没有交流群
      • 2b814c4759ca:可怕。。
        子祖:@啧肉君 怎么可怕呢?
      • 3f8a18e39c01:再也不能好好的监控了
        子祖:@请亲切的称呼我为撸SIR 哈哈
        3f8a18e39c01:@子祖 都被你们毁了,女票再也不会让我给她装app了
        子祖:@请亲切的称呼我为撸SIR 还有新技术的,慢慢学习就好啦
      • 星象:这个零基础的人该去哪里找大门?
        星象: @子祖 好吧,我先看看你的文章吧,谢谢你的回复
        子祖:@星象 可以看我之前的文章,或者你想学什么语言?
      • 0416119a816f: :joy: 题主你真的是在帮宝强么...此文一出,那些想监控的coder都无所遁形了...
        子祖:@艾尔欧唯伊 不需要App Store审核的,用电脑装就可以
        0416119a816f:@子祖 :sweat_smile: 我倒是想学,可惜没地方用...
        不过这种APP,appstore会通过审核么...
        子祖:@艾尔欧唯伊 估计能认真学习的人也不多
      • 3ac97cb46d7f:女程序媛表示,看我打死你个龟孙。来啊ionic。 framework通杀你的ios和Android。
        3ac97cb46d7f:@子祖 带什么表,要什么自行车。信用卡就在女票手里,怎么买开发账号,naive
        子祖:@饮鸩止渴的水怪 还可以让她们带个表,记录她们的心率,那就可以呵呵,知道她们有没有做坏事了
        子祖:@饮鸩止渴的水怪 哈哈
      • imageURL:6666
        子祖:@启名 谢谢
        imageURL: @子祖 加油 挺你到天亮。
        子祖:@启名 我还会继续更新教程的
      • 麻花豆酥:首先你得有个女朋友,第二:有时候真相是残酷的你能接受吗?,第三:最服心率计算与"剧烈运动"想法的结合
        子祖:@维维豆酥 权当学习和想法碰撞吧
      • 浮云我想听你说:有想法啊
        浮云我想听你说:已关注 ,向你学习!
        子祖:@浮云我想听你说 我还会继续更新更多教程的
        子祖:@浮云我想听你说 去实践吧,不懂看回之前教程,我会陆续发送基础的教程的
      • 2b371a83803c:嗯,都学会了,就差一个女朋友了!
        子祖:@西界_ 那就权当娱乐吧
        2b371a83803c:@子祖 然而并没有什么卵用
        子祖:@西界_ 学会了你还怕找不到女朋友,学会做app现在月薪都上万啦,我会继续发一些基础教程的
      • 我的故事你有在听吗_:不明觉厉
        子祖:@我的故事你有在听吗_ 哈哈
      • 异乡有悟:学了这块给女朋友手机上跑了一次,然后女朋友跑了,大神你说怎么办吧
        子祖:@codeCui 哈哈,拿到定位追回来
      • 20a024a84574:我比较好奇楼主如何控制到定位附近的摄像头信息,求赐教 :blush:
        子祖:@Czw影子 你百度摄像头API,不是我来调用,只是要找API,当然这也是设想,看个人怎么做啦,我只是介绍swift的学习项目啦
      • ValienZh:这样太耗电了
        子祖:@ValienZh 你的方法真好
        ValienZh:@子祖 可以半小时或一小时发一次位置. 如果定位在酒店附近,就发送警告信息. :joy:
        子祖:@ValienZh 技术贴别当真,练手而已,主要是为了介绍框架
      • 915dab9f6d47:唉,不过我觉得装了这个并不会让我们更有安全感或更开心……感觉更像破坏器:disappointed_relieved:
        子祖:@femi 学习编程的动力而已,别当真
      • 23240449cd79:iOS 定位时,如果在后台获取定位,会在 Status Bar 上显示 “某app正在获取你的位置” 呀。
        23240449cd79:@子祖 @溜萝卜 学习了!由于最近都用不上定位这个功能,所以都有点忘了。 :smiley:
        溜萝卜:@ArthurK 那个是使用期间使用位置,用always就行
        子祖:@ArthurK 不会的,你自己试验一下吧...
      • 爱上别的吧:现在技术文章也不好写了 还要与时事接轨。。。。
        子祖:@爱上别的吧 哈哈
      • 每天多一点:学习还是挺好的. 至于功能嘛... iphone 自带的朋友应用不就提供这个功能吗?
        子祖:@每天多一点 里面还有uihealth的东西,拿到坐标还可以调监控的
        每天多一点:@子祖 iphone 自带的找朋友就是可以实时看到朋友的位置. 你用的 extension 应该也是为了常驻来上传信息的吧? 还有, 这个应用的后台可以用免费的 baas 来做, 可以省掉服务端的开发.
        子祖:@每天多一点 不是的,请你认真看清楚里面的文章细节再来提问吧,别急着质问喔
      • 65067d1326a2:iOS 还想监控。。。。哪一步不需要用户授权。。
        65067d1326a2:@子祖 后台如何长期无限时间保活。
        子祖:@醋溜草莓便当 这个是你自己安装在女朋友手机上设置好的了,或者嵌套在别的APP上
      • bfb6a2f3bf73:还处在OC入门的阶段
        bfb6a2f3bf73:毕竟软件不是我的本行,先把东西做出来再说
        子祖:@流明_Rik oc迟早被淘汰的,直接来swift吧,我之前的文章有教程
      • ALEXIRC:啥时候搞个安卓平台的??? :smile:
        子祖:@cc_M 安卓的也很简单,用百度地图的SDK的API就可以了
      • ya_eternity:很抱歉,用户不同意你访问位置信息
        子祖:@ya_eternity 你可以帮她安装好,预先设置
      • 是你的小傻子呀:一直想学编程这类的,不知道该从哪下手:joy:
        子祖:@苏锦年 看你想学什么,我就更新一下我会的教程吧
        陈汐年:@子祖 就冲你这句话,我要转行。
        子祖:@L简单 这个其实很简单的,零基础一个月左右,有基础一天到三天,你可以留意我发的文章,之后还会发一些用h5写的简单的网络商城建设等等
      • f2736c363fc7:很喜欢但是丝毫不懂的路过(´Д⊂ヽ
        d3f414d1acee:@我何时为仙orz 耿直的girl :joy:
        子祖:@我何时为仙orz 你可以看回我之前的教程,有基础的话三天就够了
      • 七夢:好牛逼虽然看不懂阿哈哈哈哈哈哈
        子祖:有基础话三天学习swift,一天这个就够了
        子祖:@Aenbaby 其实很简单,用心学,无基础的话一个月,有基础的话一天
      • 二十一号:屌屌屌,首先也要一个男朋友可以监控啊。
        子祖:@二十一号 有备无患嘛,学习要像毒品那样,有兴趣可以学习我之前的课程
      • OvenChou:我想问一下这个APP会出现在他的桌面上的吧
        子祖:@无夜之星辰 简单办法就是仿造这个app,用青花瓷获取数据
        Lol刀妹:@子祖 怎样嵌入其他app
        子祖:@周盼Oven 这个有三个解决办法,第一是可以嵌套在她其中的一个app软件里面,第二或者在我这个app里面加入一些动画或者游戏等等,第三甚至可以拿到苹果底层的东西拿到定位,第一第二比较简单
      • DZIR:诶想学学…还没学习swift
        子祖:@DZIR 有问题随便问
        DZIR:@子祖 好的
        子祖:@DZIR 你可以看回之前的文章,我写了个三天速成教程
      • 总有刁民想泡朕:0基础,而且还是安卓机,不会啊
        子祖:@总有刁民想泡朕 那就看回我之前的文章吧,边学边问
      • 赵晓天:继续完善吧
        子祖:@赵晓天 其实还可以很多想法的
      • 暗夜魔王:安卓下的呢?
        子祖:@大树底下的苹果 刚刚有人说可以设置多久上传一次定位
        a460f11452f3:@子祖 实时调用gps 真的真的超级费电欸 :joy: 而且 android关定位特别方便,,
        子祖:@暗夜魔王 安卓还没有时间去弄,但是可以用百度地图的SDK安卓版来用
      • c9308f947b17:挺牛逼
        子祖:@离心木 自己拿来试一下吧
      • ChrisBama:666
        子祖:@ChrisBama 自己实践一下吧
      • 春泥Fu:首先,需要有个...
        子祖:@春泥Fu 监控你基友
      • 收起你的泪别玷污姐的:小白来跟你学习了,赞赞赞赞赞赞……
        子祖:@趣捞贝 还会继续写不同的语言教程和项目的,只要我会的
        趣捞贝:我也是学到了,好腻害呀,膜拜
        子祖:@收起你的泪别玷污姐的 看了要自己实践喔,不懂可以问

      本文标题:宝宝别哭,教你用swift写一个app监控你女朋友(上)

      本文链接:https://www.haomeiwen.com/subject/fhrwsttx.html