我的代码里有些奇怪的东西。我确定是忘了什么,但不知道是什么。我试着在UIWebView中处理电话、短信、邮件和http链接。
这是我尝试的方法:
1/ 实例化UIWebView:
webview = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,460)];
webview.opaque = NO;
webview.backgroundColor = [UIColor clearColor];
webview.userInteractionEnabled = YES;
webview.dataDetectorTypes = UIDataDetectorTypeAll;
2/ 设置适当的代理:
[webview setDelegate: self];
3/ 实现委托方法(这里是简化版):
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType; {
NSURL *requestURL = [[ request URL] retain];
NSLog(@">>> %@", [requestURL scheme]);
[requestURL release];
return YES;
}
当我使用我的调试设备点击一个http链接时,会打印出NSLog。当我点击一个电话链接时,我会收到这样的确认消息:
(来源:cahripub.com)
在iPhone模拟器中,tel和http链接都可以通过NSLog正确地打印出来。
很奇怪,不是吗?