2012-11-05 4 views
1

사용자가 UITextView에서 하이퍼 링크를 누를 때 호출되는 UIApplication.openURL을 서브 클래스 화하는 방법을 보여주는 여러 곳을 찾았습니다. 그러나, 나는 그들이 mailto 링크를 누를 때 호출되지 않는다는 것을 알았고 mailto 링크를 재정 의하여 할 필요가있다. 내 응용 프로그램에는 전자 메일 클라이언트가 포함되어 있으며 Apple에서 내 응용 프로그램을 "기본"전자 메일 클라이언트로 만들 수 없기 때문에 전자 메일을 보내기 위해 내 응용 프로그램을 사용하기 위해 내 프로그램 내의 mailto 링크를 원합니다.UITextView intercept mailto links

먼저 UIWebView를 대신 사용해 보았습니다. UIWebView를 사용하여이 작업을 수행 할 수 있었지만 일부 디스플레이 문제가있었습니다. (일반 텍스트 만 표시하고 UITextView처럼 멋지게 보이지 않습니다.).

또한 UIApplication.canShowURL을 재정의하려고 시도했지만 http : 링크조차도 호출되지 않습니다. 서브 클래 싱을 시도하고 "Swizzling"을 시도했는데 둘 다 같은 결과를 얻습니다. 사용자 정의 URL 체계 http://mobiledevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html에 대한

등록 :

+0

아마도 솔루션에 대해 다음을 살펴볼 수 있습니다. http://stackoverflow.com/questions/4403992/possible-to-handle-your-own-http-url-schemes-in-ios – kineticfocus

답변

2

이 정보를 바탕으로 내가 kineticfocus에 의해 주석에서, 여기 Possible to handle your own http URL schemes in iOS? 발견, 내가 함께 끝났다.

내 텍스트를 UITextView에 표시하기 전에 유효한 각 이메일 주소와 mailto : URL을 찾고 내 맞춤 URL 체계로 변환하십시오. 예 변환 :

[email protected] ->의 MyApp : //[email protected]

흔한 : [email protected] ->의 MyApp : //[email protected]

이를 변환으로 인해 텍스트를 읽기가 더 어렵게 만들기 때문에 이상적이지 않습니다 (mailto : URL이 아닌 텍스트의 일반 전자 메일 주소). 그러나 UIWebView를 사용하지 않고 찾을 수있는 최선의 방법이었습니다. .

UITextView가 맞춤 URL 스키마를 지원한다는 점에 깊은 인상을 받았습니다. Windows 환경에서 항상 RICHEDIT 창 클래스가이를 지원하길 바랬지 만 그렇지 않습니다.

내가 찾은 대부분의 항목이 UITextView와 관련이 없거나 UIWebView를 사용하고 있거나 다른 앱이나 웹 사이트에서 앱을 호출하려는 경우에만 내 질문을 중복으로보고하는 대신 대답으로 게시합니다.