8

I'm actually trying to call 2 digits phone numbers via openURL (works properly for 3+ digits).

On IOS 6 i was using an hack, like this :

if (self.numberToCall.length < 3) {
    self.numberToCall = [NSString stringWithFormat:@"%@?000", self.numberToCall];
}    

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", self.numberToCall]]];

Not working on IOS 7 (does nothing).

Someone has a solution ?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
F. Lambert
  • 113
  • 5

2 Answers2

2

I've found a solution :

tel://18;18

it woorks on iOS6 and iOS7

";" is used for phone context http://www.ietf.org/rfc/rfc2806.txt

the phone number showed is 18;18 but it makes the call.

Yableio
  • 143
  • 4
  • That works. Thanks. I can't mark correct because it's not my question but the bounty is yours. – Adam Waite Nov 29 '13 at 11:04
  • Great find & congrats. Reading the RTC, I think the correct format would be something like this: `tel:18;phone-context=+2125551234`. With the context being used so that someone dialing from outside can still connect. – Yimin Rong Nov 29 '13 at 14:31
1

You can try appending a pause, as in tel:42p, this will show as 42,. Not great, but a workaround. It looks like Apple has been having a lot of issues with this because the behavior changes so often between iOS versions.

Yimin Rong
  • 1,890
  • 4
  • 31
  • 48
  • Telephony requires a pause command of some sort. It's a matter of finding what it maps to. It might be as simple as using a comma. – Yimin Rong Nov 28 '13 at 18:39