iOS开发

拨打电话的三种方法

2017-05-10  本文已影响8人  一蓑丨烟雨

iOS10 新特性

// old
- (BOOL)openURL:(NSURL*)url;
// new
- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion;
//并且额外地提供了一个用来URL处理的options字典参数,没有限定值时就要传空字典,就像下方代码一样调用.
  [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
  //options目前可传入参数Key在UIApplication头文件只有一个:UIApplicationOpenURLOptionUniversalLinksOnly,其对应的Value为布尔值,默认为False.如该Key对应的Value为True,那么打开所传入的Universal Link时,只允许通过这个Link所代表的iOS应用跳转的方式打开这个链接,否则就会返回success为false,也就是说只有安装了Link所对应的App的情况下才能打开这个Universal Link,而不是通过启动Safari方式打开这个Link的代表的网站.
    
  [[UIApplication sharedApplication] openURL:url options:@{UIApplicationOpenURLOptionUniversalLinksOnly : @YES} completionHandler:nil];

拨打电话三种方法:

//1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示
    NSMutableString *str1=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"186xxxx6979"];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str1] options:@{} completionHandler:nil];

   // 2,这种方法,打完电话后还会回到原来的程序,也会弹出提示,推荐这种
    NSMutableString *str2=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"186xxxx6979"];
    UIWebView *callWebview = [[UIWebView alloc] init];
    [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str2]]];
    [self.view addSubview:callWebview];
    
    //3,这种方法也会回去到原来的程序里(注意这里的telprompt),也会弹出提示
    NSMutableString *str3=[[NSMutableString alloc] initWithFormat:@"telprompt://%@",@"186xxxx6979"];
 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str3] options:@{} completionHandler:nil];

上一篇下一篇

猜你喜欢

热点阅读