2013-12-18 4 views
1

Xamarin.iOS 응용 프로그램에서 OpenUrl을 사용하여 메일을 보내야합니다.인 코드 mailto : uri

var uri = new Uri ("mailto:[email protected]"); 
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString())); 

을하지만, 예를 들어 주제로, compilex mailto URI를 전송하려는 경우, 그것은 인코딩의 일종이 필요합니다 간단한 경우 잘 작동합니다.

var uri = new Uri ("mailto:[email protected]?subject=Hello, World!"); 
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString())); //FAIL 

시도했으나 작동하지 않습니다.

+1

참조 : http://stackoverflow.com/questions/6172664/issue-with-mail-sending-using-openurl. – Jason

답변

1

WebUtility.UrlEncode 않습니다. 그러나 NSUrl 입력이 제한됩니다.

입력 문자열에서 이상한 문자를 제거하여이 문제를 해결했습니다.

var subject = Regex.Replace (subject, @"[^\u0000-\u00FF]", string.Empty); 
var uri = new Uri("mailto:[email protected]?subject=" + WebUtility.UrlEncode(subject)); 
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString())); 
+0

NSUrl은 이전보다 iOS7 +에서 더 엄격하다는 점에 유의하십시오. 따라서 오래되고 테스트 된 코드가 예상대로 작동하지 않을 수도 있습니다. – poupou