//MARK:_一键报警设置
    //MARK: - 弹出视图
    
    func createView() {
        
        var alertView : UIAlertView?
        alertView = UIAlertView(title: "110", message: "", delegate: self, cancelButtonTitle: "取消", otherButtonTitles: "呼叫")
        alertView?.delegate = self
        alertView?.show()

}

//点击响应方法
    func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
        
        if buttonIndex == 1 {
            
            //调用获取用户地理位置信息
            getMapData()
            
            var url1 = NSURL(string: "tel://110")
            
            UIApplication.sharedApplication().openURL(url1!)
     
        } else {
            
            return
        }
        
    }
    
    //MARK:_调用获取用户地理位置信息
    func getMapData() {
        
        mapLacationManager = AMapLocationManager()
        
        mapLacationManager.allowsBackgroundLocationUpdates = true
        
        mapLacationManager.startUpdatingLocation()
        
        mapLacationManager.requestLocationWithReGeocode(true) { (location, regecode, error) in
            
            print(location)
            
            if (location != nil) {
                
                self.LONGITUDES = location.coordinate.longitude
                
                self.LATITUDES = location.coordinate.latitude
                
            } else {
                
                print(error)
                
            }
            
            if self.LONGITUDES != nil && self.LATITUDES != nil {
                
                self.getUserAddress()
            
            }

}
        
        
    }

//获取用户所在位置信息ADDRESS
    func getUserAddress() {
        
        
        let latitude : CLLocationDegrees = LATITUDES!
        
        let longitude : CLLocationDegrees = LONGITUDES!
        
        let location : CLLocation = CLLocation.init(latitude: latitude, longitude: longitude)
        
        //反地理编码
        self.geocoder.reverseGeocodeLocation(location, completionHandler: { ( placemarks : [CLPlacemark]?, error : NSError?) in
            
            print("placemarks:\(placemarks)")
            
            
            if (error != nil) {
                
                print("你输入的地址没找到,可能在月球上")
                
            } else {
                
                var placemark : CLPlacemark = (placemarks?.first)!
                
                self.ADDRESS = placemark.name
                
            }
            
            if self.ADDRESS != nil {
                
                self.UploadLocation()
                
            }
            
        })
        
        
        
    }
    
   
    
    func UploadLocation() {
        
        let model : ShareModel = ShareModel()
        
        if (!model.NetWorking) {
            
            NSHelper.showAlertTitle("网络不可用,请检查网络连接。", forView: self.view)
            
            return
            
        }
    
        let dic : [String : AnyObject] = NSDictionary(dictionaryLiteral: ("USERMOBILE",AppSetting.mobile!),("IDCARD",AppSetting.userIdNum!),("LONGITUDES",LONGITUDES!),("LATITUDES",LATITUDES!),("ADDRESS",ADDRESS!),("CITYCODE",AppSetting.homeCity!)) as! [String : AnyObject]
        
        let tools = NetWorkTools.sharedNetWorkTools()
        
        let parmeters = ["auth": tools.toAuthJSONString(),"info" : tools.toJSONString(dic)]
        
        let hud : MBProgressHUD = MBProgressHUD.init(view: self.view)
        
        self.view.addSubview(hud)
        
        hud.labelText = "你的位置发送中..."
        
        ZPHttpTool.POST(tools.baseUrl + cfg.insertBJXX(), parameters: parmeters, success: { (person) in
            
            hud.hide(true)
            
            
            var reqDic : [String : AnyObject] = person as! [String : AnyObject]
            
            if reqDic["errCode"]?.integerValue == 0 {
                
                self.mapLacationManager.stopUpdatingLocation()
                
                 print(reqDic["msg"] as! String)
                
            } else {
                
                print(reqDic["msg"] as! String)
                
            }
            
            }) { (error) in
                
                print("error:\(error)")
        }
        
        
    }

swift 中拨电话的实现相关推荐

  1. AT命令拨电话,如何判断手机的状态?

    我使用AT命令拨电话,如:ATD10086; 我怎么知道我拨打的电话是否成功了呢? 比如SIM卡欠费了,那么肯定算是没有拨通:再比如网络有问题,被叫方没有收到来电,那么也算没拨通:等等.但是指令发出后 ...

  2. 解决Swift中present(uiImagePickerController,animated: true,completion: nil)闪退的问题

    swift中开发选择图片上传,会使用到Tap Gesture Recognizer控件,对应 UITapGestureRecognizer API,以下是代码示例(取自IOS developer li ...

  3. Swift 中使用 SQLite——批量更新(事务处理)

    本文是Swift 中使用 SQLite系列的收官之作,介绍一下在数据库中的批量更新. 事务 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态 开始数据操作 如果数据操作成功,提交事 ...

  4. Swift 中使用 SQLite——打开数据库

    关于Swift中使用SQLite,接下来可能会分别从打开.增.删.改.查,几个方面来介绍SQLite的具体使用,这一篇重点介绍一下如何打开. 定义全局数据库访问句柄 /// 全局数据库访问句柄 pri ...

  5. 探索 Swift 中的 MVC-N 模式

    作者:Marcus Zarra(twitter:@mzarra) Marcus 将会为大家介绍一种设计模式,他曾经在那些需要从互联网进行大量频繁数据请求的 iOS 应用当中使用此设计模式.这个设计采用 ...

  6. Swift 中的内存管理详解

    这篇文章是在阅读<The Swift Programming Language>Automatic Reference Counting(ARC,自动引用计数)一章时做的一些笔记,同时参考 ...

  7. 怎样在swift中创建CocoaPods

    本文由yake_099(博客)翻译自raywenderlich,作者:Joshua Greene 原文:How to Create CocoaPods with Swift 你可能对一些比较著名的开源 ...

  8. Swift中编写单例的正确方式

    本文由CocoaChina译者leon(社区ID)翻译自krakendev 原文:THE RIGHT WAY TO WRITE A SINGLETON 转载请保持所有内容和链接的完整性. 在之前的帖子 ...

  9. Swift中依赖注入的解耦策略

    原文地址:Dependency Injection Strategies in Swift 简书地址:Swift中依赖注入的解耦策略 今天我们将深入研究Swift中的依赖注入,这是软件开发中最重要的技 ...

最新文章

  1. JAVA min()_Java min()方法
  2. 【干货】Linux 网卡绑定的相关知识和技巧
  3. 分布式集群环境下,如何实现session共享三(环境搭建)
  4. 推荐系统里的那些坑儿
  5. Fiddler抓取https相关设置
  6. 阿加莎•克里斯蒂作品04东方快车谋杀案
  7. 【Java】《面向对象程序设计——Java语言》Castle代码修改整理
  8. 大米API源码v2.0(全新UI版本)
  9. 源码安装mysql 5.1_Linux环境下源码编译安装MySQL5.1
  10. android design包控件,Android Design包之TextInputLayout和TextInputEditText的组合使用【原创】...
  11. matlab中 mcc、mbuild和mex命令详解
  12. java中两个源文件_两个java源文件同属一个包,其中一个类引用了另一个,在用javac编译时,报错找不到引用的类,import无作用...
  13. 题解【[FJOI2018]所罗门王的宝藏】
  14. 【IoT】产品设计:如何挖掘产品需求
  15. 三点组成的三角形的面积计算公式(海伦公式)
  16. 专利检索常用的十八个网站
  17. linux驱动原载-- touch pannel驱动
  18. go gorm获取数据库报错:goexit: BYTE $0x90 // NOP
  19. jupyter和spider;Anaconda、Python、Jupyter、Pycharm、Spyder、conda、pip
  20. 腾讯技术分享:微信小程序音视频技术背后的故事

热门文章

  1. Windows7下OpenGL简单使用举例
  2. 【Live555】live555源码详解(六):FramedSource、RTPSource、RTPSink
  3. 【C++】C++命名空间重定向
  4. 【Qt】QImage加载bmp位图数据
  5. apn java_android设置移动联通电信wap接入点
  6. 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...
  7. MySql库中所有表的属性_SQL查询某库所有的表所有的字段及字段的属性
  8. python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...
  9. iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...
  10. 安卓饼状图设置软件_话单及银行卡交易智能分析软件