今天做公司的项目,发现一个显示电话号码的cell点击后没反应,按照逻辑应该是点击之后弹出拨号界面的,遂前往相关的类里面查看代码,发现上一个人在cell的点击事件里是这样写的:
NSString *phoneStr = [NSString stringWithFormat:@"tel:%@",phone];
WKWebView * callWebview = [[WKWebView alloc] init];
[callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:phoneStr]]];
[self.view addSubview:callWebview];
初一看,没啥问题啊,以前加载URL都是这样写的,为什么点击之后没反应呢?
正当我百思不得其解之时,猛然想到一个问题,以前加载URL都是用UIWebView写的,难道是iOS8.0带来的新控件——WKWebView的原因?
于是本着实验的心态,把WKWebView改成UIWebView试了试,居然能弹出拨号的对话框了,看来就是WKWebView的问题了,于是上网查了下WKWebView的特性,果然,是因为WKWebView默认禁止了跳转到appStore, 拨打电话, 唤起邮箱等一系列操作,而这些操作UIWebView是默认支持的。(不知道为什么这么做,难道是为了更安全?)
估计是上一个开发人员响应苹果的号召,积极把UIWebView改成WKWebView,却没想到苹果在WKWebView上放了一个大坑…更坑的是