Then I find that let the schema 'tel:' and 'tel://' has different effect when WebView load that url. I read Apple's Document and see that Apple is using the 'tel:' schema. So I changed 'tel://' to 'tel:', done~
The following code is part of my Project, it can fix the wrong components in a mess string from ABRecordRef number value, i.e remain all the number and the prefix '+', so that the schema can be correctly.
Hope this post can help people get the same prolem :)
My Weibo is @洛石
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| - ( void )callContact:( NSNotification *)notice { if (!isMakingCall) { if ([[UIApplicationsharedApplication] canOpenURL:[ NSURLURLWithString :@ "tel:+861010010" ]]) { NSString *phoneNumber = [notice object]; BOOL hasPlusString = [phoneNumber hasPrefix:@ "+" ]; phoneNumber = [[phoneNumber componentsSeparatedByCharactersInSet:[[ NSCharacterSetdecimalDigitCharacterSet ] invertedSet]] componentsJoinedByString:@ "" ]; //电话Url Schema里面有各种英文字符系统会不识别,所以要处理。 if (hasPlusString) { phoneNumber = [ NSStringstringWithFormat :@ "+%@" ,phoneNumber]; } NSString *tryPhoneNumber = [ NSStringstringWithFormat :@ "tel:%@" ,phoneNumber]; if ([phoneNumber length]>0 && [[UIApplicationsharedApplication] canOpenURL:[ NSURLURLWithString :tryPhoneNumber]]) { isMakingCall = YES ; [selfperformSelectorOnMainThread: @selector (refreshMainTableView:) withObject:nilwaitUntilDone: YES ]; NSLog (@ "callContact phoneNumber:%@" ,tryPhoneNumber); NSURL *url = [ NSURLURLWithString :tryPhoneNumber]; if (dialWebview== nil ) { dialWebview = [[UIWebViewalloc] initWithFrame:CGRectMake(40, 373, 35, 40)]; // Make webview transparent dialWebview.alpha = 0.0; // Assume we are in a view controller and have access to self.view // insert webview under call button so if user cancels the view // doesn't interfere with normal button operation [self.viewinsertSubview:dialWebviewbelowSubview:self.view]; } [dialWebviewloadRequest:[ NSURLRequestrequestWithURL :url]]; } else { [OMGToastshowWithText:@ "对不起,您拨打的不是电话号码。" duration:2]; } } else { [OMGToastshowWithText:@ "对不起,您的设备无法拨打电话。" duration:2]; } } }
|
------
My new business with my wife, wholesale meddle-to-high end men's seamless underwear in the Netherlands: https://ecosharelife.com