2012-05-29 5 views
3

아이폰에 "## 8004664411"과 같은 전화 번호를 걸고 싶습니다."##"이 표시된 전화 번호를 다이얼하는 방법은 무엇입니까?

숫자 "8004664411"을 누르면 작동하지만 숫자에 "##"기호가 있으면 작동하지 않습니다.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://##8004664411"]]; 

잘못된 이스케이프 문자가 : 여기

내가 작동되지 않는 사용하고있는 코드?

+0

단지에 작은 주석 (나는 ... 예를 시도했습니다) .ietf.org/html/rfc3966)와 [RFC2806] (http://tools.ietf.org/html/rfc2806)을 사용하면'tel : '하지만'tel : // '을 사용하면 안됩니다. – rckoenes

+0

이것은 답변이 아니므로 의견에 달았습니다. 제 해결 방법은 전화 번호 (코드 포함)를 클립 보드에 복사 한 다음 사용자에게 전화 앱에 붙여 넣으라고 요청하는 것입니다. 이것은 iOS에서 허용되며, 작동시킬 수있는 유일한 방법입니다. ( –

답변

1

* 또는 # 문자가 포함 된 숫자는 다이얼 할 수 없습니다. 그것은 애플이 보안상의 이유로 다이얼 문자열에 그들을 허용하지 않는 것 같습니다. 다음은 문서의 관련 부분입니다. 애플의 documentation에서

:

가 악의적으로 전화를 리디렉션하거나 전화 또는 계정의 동작 을 변경하지 못하도록하려면 전화 응용 프로그램에서 특수 문자의, 대부분 지원하지만 모든 tel 방식. 특히, URL에 * 또는 # 문자가 포함되어있는 경우 전화 응용 프로그램은 해당 전화 번호로 전화를 시도하지 않습니다. 응용 프로그램이 사용자로부터 URL 문자열 또는 알 수없는 소스를 수신하는 경우 인 특수 문자가 URL에서 적절하지 않을 수 있는지 확인해야합니다. 기본 응용 프로그램의 경우 NSString의 stringByAddingPercentEscapesUsingEncoding : 메서드를 사용하여 문자를 이스케이프 처리하면 원래 문자열의 이스케이프 된 버전이 올바르게 반환됩니다.

참고 : // 도구 :stringByAddingPercentEscapesUsingEncoding: 부분은 * 및 # 적용되지 않습니다 [RFC3966] (HTTP에 따라,

+0

대단히 감사합니다! – user1155543

+0

몇 가지 접근법을 시도했습니다 : 1. 연락처 레코드를 생성하고 사용자가 전화 값을 터치하도록하는 것 2. 내장 웹 뷰 사용하기 , 3. telprompt URL 스킴 사용하기 몇몇 사용자는 전화를 걸고있는 번호를 명시 적으로 '확인'해야했지만 그 중 아무 것도 작동하지 않았습니다. 결국 나는 다이얼 한 문자열을 마분지에 넣고 요청하는 경고 그것을 사용자가 전화 애플 리케이션에 붙여 넣습니다. –

관련 문제