swift 中拨电话的实现
//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 中拨电话的实现相关推荐
- AT命令拨电话,如何判断手机的状态?
我使用AT命令拨电话,如:ATD10086; 我怎么知道我拨打的电话是否成功了呢? 比如SIM卡欠费了,那么肯定算是没有拨通:再比如网络有问题,被叫方没有收到来电,那么也算没拨通:等等.但是指令发出后 ...
- 解决Swift中present(uiImagePickerController,animated: true,completion: nil)闪退的问题
swift中开发选择图片上传,会使用到Tap Gesture Recognizer控件,对应 UITapGestureRecognizer API,以下是代码示例(取自IOS developer li ...
- Swift 中使用 SQLite——批量更新(事务处理)
本文是Swift 中使用 SQLite系列的收官之作,介绍一下在数据库中的批量更新. 事务 在准备做大规模数据操作前,首先开启一个事务,保存操作前的数据库的状态 开始数据操作 如果数据操作成功,提交事 ...
- Swift 中使用 SQLite——打开数据库
关于Swift中使用SQLite,接下来可能会分别从打开.增.删.改.查,几个方面来介绍SQLite的具体使用,这一篇重点介绍一下如何打开. 定义全局数据库访问句柄 /// 全局数据库访问句柄 pri ...
- 探索 Swift 中的 MVC-N 模式
作者:Marcus Zarra(twitter:@mzarra) Marcus 将会为大家介绍一种设计模式,他曾经在那些需要从互联网进行大量频繁数据请求的 iOS 应用当中使用此设计模式.这个设计采用 ...
- Swift 中的内存管理详解
这篇文章是在阅读<The Swift Programming Language>Automatic Reference Counting(ARC,自动引用计数)一章时做的一些笔记,同时参考 ...
- 怎样在swift中创建CocoaPods
本文由yake_099(博客)翻译自raywenderlich,作者:Joshua Greene 原文:How to Create CocoaPods with Swift 你可能对一些比较著名的开源 ...
- Swift中编写单例的正确方式
本文由CocoaChina译者leon(社区ID)翻译自krakendev 原文:THE RIGHT WAY TO WRITE A SINGLETON 转载请保持所有内容和链接的完整性. 在之前的帖子 ...
- Swift中依赖注入的解耦策略
原文地址:Dependency Injection Strategies in Swift 简书地址:Swift中依赖注入的解耦策略 今天我们将深入研究Swift中的依赖注入,这是软件开发中最重要的技 ...
最新文章
- JAVA min()_Java min()方法
- 【干货】Linux 网卡绑定的相关知识和技巧
- 分布式集群环境下,如何实现session共享三(环境搭建)
- 推荐系统里的那些坑儿
- Fiddler抓取https相关设置
- 阿加莎•克里斯蒂作品04东方快车谋杀案
- 【Java】《面向对象程序设计——Java语言》Castle代码修改整理
- 大米API源码v2.0(全新UI版本)
- 源码安装mysql 5.1_Linux环境下源码编译安装MySQL5.1
- android design包控件,Android Design包之TextInputLayout和TextInputEditText的组合使用【原创】...
- matlab中 mcc、mbuild和mex命令详解
- java中两个源文件_两个java源文件同属一个包,其中一个类引用了另一个,在用javac编译时,报错找不到引用的类,import无作用...
- 题解【[FJOI2018]所罗门王的宝藏】
- 【IoT】产品设计:如何挖掘产品需求
- 三点组成的三角形的面积计算公式(海伦公式)
- 专利检索常用的十八个网站
- linux驱动原载-- touch pannel驱动
- go gorm获取数据库报错:goexit: BYTE $0x90 // NOP
- jupyter和spider;Anaconda、Python、Jupyter、Pycharm、Spyder、conda、pip
- 腾讯技术分享:微信小程序音视频技术背后的故事
热门文章
- Windows7下OpenGL简单使用举例
- 【Live555】live555源码详解(六):FramedSource、RTPSource、RTPSink
- 【C++】C++命名空间重定向
- 【Qt】QImage加载bmp位图数据
- apn java_android设置移动联通电信wap接入点
- 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...
- MySql库中所有表的属性_SQL查询某库所有的表所有的字段及字段的属性
- python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...
- iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...
- 安卓饼状图设置软件_话单及银行卡交易智能分析软件