1. 程式人生 > >Swift 3.0 撥打電話

Swift 3.0 撥打電話

Swift版

//1.有提示
 let callWebView = UIWebView()
 callWebView.loadRequest(URLRequest(url:URL(string: "tel:\(10086)")!))
 self.addSubview(callWebView)
//2.有提示
 UIApplication.shared.openURL(URL(string: "telprompt://10086")!)
//3.無提示
UIApplication.shared.openURL(URL(string: "tel://10086")!)

經測試撥打完都會回到app,沒有留在通話記錄,網上說第三種會停留在通訊錄,待測試

OC版

//10.0之後好像撥打電話會有兩秒的延遲,此方法可以秒打
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10) {
                        NSString *phone = [NSString stringWithFormat:@"tel://4008280082"];
                        NSURL *url = [NSURL URLWithString:phone];
                        [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL
success) { NSLog(@"phone success"); }]; }else{ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://4008280082"]]; } //2.會彈出提示框 [[UIApplication sharedApplication] openURL:[NSURL
URLWithString:@"telprompt://4008380082"]];
//帶提示框的用法
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"客服電話" message:@"400-838-0082" preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *done = [UIAlertAction actionWithTitle:@"呼叫" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10) {
            NSString *phone = [NSString stringWithFormat:@"tel://4008380082"];
            NSURL *url = [NSURL URLWithString:phone];
            if (@available(iOS 10.0, *)) {
                [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
                    NSLog(@"phone success");
                }];
            } else {
                // Fallback on earlier versions
            }
        }else{
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://4008380082"]];
        }


    }];
    [alertController addAction:done];

    UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

    }];
    [alertController addAction:cancel];

    [self presentViewController:alertController animated:YES completion:nil];

相關推薦

Swift 3.0 撥打電話

Swift版 //1.有提示 let callWebView = UIWebView() callWebView.loadRequest(URLRequest(url:URL(string:

使用 Swift 3.0 操控日期

字符 一個 local 3-0 uil num 喜歡 posix fmt 作者:Joe,原文鏈接,原文日期:2016-09-20譯者:Cwift;校對:walkingway;定稿:CMB 當你在想要 大規模重命名 時,一個附帶的挑戰就是要確保所有相關的文檔都必須同步

swift 3.0適配

為了適配swift 3.0,又要大費周折的從網路上找文章了.不過這樣的文章已經很多了.下面我找到幾個比較好的文章,可以和大家分享一下.接下來就要驗證這些文章是否真確,是否高效. 等待自己的偉大小白鼠....   Swift 3 遷移工作總結 http://www

swift 3.0 -UINavigationController

//  AppDelegate.swift //  swift-UINavigationController 導航控制器 // //  Created by yidong on 16/9/30. //  Copyright © 2016年 東哥. All rights re

Swift 3.0 整合極光推送

1.前言 推送證書配置什麼的都不多講了,極光推送的開發文件裡都有詳細的介紹極光推送文件,因為官方的文件是OC版本的,我這裡主要是講解一下怎麼用Swift進行整合。 本篇文章也可移步簡書閱覽,效果更好哦! 2.配置 現在一切都已經根據他們的文件配置好了

黑馬程式設計師:開源Swift 3.0微博專案 ,做最具情懷的IT教育

   眾所周知,今年的蘋果開發者大會之後,作為國內iOS培訓機構的領頭羊,黑馬程式設計師iOS學院率先放出iOS10的最新教程,分享給廣大iOS愛好者及新老學員。而就在前幾天,黑馬程式設計師的資深iOS講師居然做起了“網紅”。   在未大肆宣傳的情況下,直播前,同時線上人

Swift 3.0 從 ++ 的實現到 inout 和 defer 的小細節

本文是一個在 Swift 3.0 中自加和自減的實現 專案在我的「Playground」中開源 引言 Swift 3.0 中刪去了原 C Style 的自加和自減寫法,轉而推薦使用+=和-=寫法。有時我們會在陣列下標處直接修改某些計數值,而+=寫法是個表示式,本身是不返回值的,

Swift 3.0】iOS 國際化切換語言

  有的 App 可能有切換語言的選項,結合系統自動切換最簡單的辦法: fileprivate var localizedBundle: Bundle = { return Bundle(path: Bundle.main.path(forResource: "zh-Hans", of

swift 3.0 按鈕的用法(UIButton)

1.按鈕的型別 /*         UIButtonType.system:前面不帶圖示,預設文字顏色為藍色,有觸控時的高亮效果         UIButtonType.custom:定製按鈕,前面不帶圖示,預設文字顏色為白色,無觸控時的高亮效果         UI

Swift 3.0 擴充套件(extension)的使用

請注意版本,Swift 3.0對應的是xcode 8,網上很多例子都是舊的,在xcode 8跑不起來。 擴充套件是向一個已有的類、結構體或列舉型別新增新的功能(在swift中擴充套件沒有名字)。 相當於Objective-C中Category(OC中可以有名字的,而且只能

swift 3.0 再探索 - 2.Array & Dictionary

swift 3.0 再探索 - 2.Array & Dictionary 上一章講了Swift 3.0的String 和 String常用的API,這一篇講解一下 Array 和 Dictionary。 (這裡順便提一下Set–集合) 在swift中關於Array和Dic

Swift 3.0 新特性

var arr = [100,200,300] for element in arr.reversed() { // 不會改變陣列元素的排序 print(element) } print(arr) arr.reverse() // 改變陣列元素的排序 print(

iOS開發之OC與swift開發混編教程,代理的相互呼叫,block的實現。OC呼叫Swift中的代理, OC呼叫Swift中的Block 閉包,swift 3.0

最新一些學妹問起,所以抽點時間來寫的,適合入門級別的swift 與 OC 混編 的程式猿。   本文章將從兩個方向分別介紹 OC 與 swift 混編   1. 第一個方向從 swift工程 中引入 oc類      1. 1 如何在swift的類中使用oc類     1

解決Android6.0+撥打電話許可權問題

針對即使獲取了撥打電話的許可權依然報錯問題的解決方案 針對即使獲取了撥打電話的許可權依然報錯問題的解決方案 private static final int MY_PERMISSIONS_REQUE

swift--Swift 3.0實戰:遷移程式到 Swift 3.0

每當看到新的程式語言我總是會有相當大的興趣,是的,Swift 3是一門『新語言』,因為它看起來,怎麼都不像過往的 Swift。開啟一個老的專案時,發現滿目瘡痍,基本上能標紅的程式碼全被標紅了。先來個截圖提提神: 圖一 程式碼標紅 怎麼樣,清醒點了沒?可能你會覺得奇怪,怎麼

Swift 3.0 第三方庫不適配報(SWIFT_VERSION)問題

Swift 3.0 第三方庫不適配問題 “Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configur

搶紅包演算法問題 swift 3.0

搶紅包演算法的討論網上也太多了,這裡不討論好壞問題.這裡只是一個實現也是網上的一個思路(一個紅包發出來,其實份額已經分配好了.) 問題: 第一個人搶的紅包 不會超過 總錢數/總人數*2 解決: 最後

Swift 3.0 中的新變化

本文翻譯自 www.hackingwithswift.com 上釋出的英文文章,原文連結What’s new in Swift 3.0 Swift 3.0 幾乎更改了所有東西,如果不做一些修改的話,你的程式碼很可能不會編譯成功。說真的,如果你覺得從 Swift

swift--Swift 3.0實戰:實現Dispatch once擴充套件

在3中原有的Dispatch once已經被廢棄了。但是可以通過給DispatchQueue實現一個擴充套件方法來實現原有的功能。 程式碼如下: public extension DispatchQueue { private static var _onceTr

Swift 3.0

// //  main.swift //  Swift-陣列 // //  Created by yidong on 16/9/27. //  Copyright © 2016年 東哥. All rights reserved. // import Foundation /