美文网首页
使用第三方框架定位

使用第三方框架定位

作者: 翻这个墙 | 来源:发表于2017-11-23 10:20 被阅读16次

使用第三方框架定位

1. 主要原因

  • 因为使用CoreLocation框架进行获取用户位置信息, 是通过代理进行回调;
  • 而第三方框架将"代理模拟"转换成为"block模式";
  • 使用起来比较方便, 而且额外增加了超时时间等功能.

2. 框架信息

3. 使用方法

  • 参照该框架对应的 readME

4. 注意事项

  • 一般集成第三方框架到项目中, 请先确保该框架没有问题, 然后再向项目中集成

5.示例代码

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let locMgr = INTULocationManager.sharedInstance()

        // MARK:- 获取一次位置信息
        // delayUntilAuthorized : 计算超时时间从什么时候开始算 false : 用户还未选择的时候开始算,当超时之后,就会调用block true: 用户选择之后开始计算超时时间,如果超时了会执行block
        let requestID = locMgr.requestLocationWithDesiredAccuracy(.Room, timeout: 3, delayUntilAuthorized: true) { (location : CLLocation!, _,  status : INTULocationStatus) -> Void in

            if status == INTULocationStatus.Success {
                print("定位成功")
            } else {
                print("定位失败\(status.rawValue)")
            }

        }

        // 强制完成,会调用block,相当于超时
        //locMgr.forceCompleteLocationRequest(requestID)

        // 取消获取用户信息,不会调用block
       // locMgr.cancelLocationRequest(requestID)

//        // Force the request to complete early, like a manual timeout (will execute the block)
//        [[INTULocationManager sharedInstance] forceCompleteLocationRequest:requestID];
//
//        // Cancel the request (won't execute the block)
//        [[INTULocationManager sharedInstance] cancelLocationRequest:requestID];


        // MARK:- 获取多次位置信息
//        locMgr.subscribeToLocationUpdatesWithDesiredAccuracy(
//            .Room) { (location : CLLocation!, _, status : INTULocationStatus) -> Void in
//
//                if status == INTULocationStatus.Success {
//                    print("定位成功")
//                } else {
//                    print("定位失败\(status.rawValue)")
//                }
//        }
    }

相关文章

网友评论

      本文标题:使用第三方框架定位

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