我必须使用Xamarin.iOS
从OpenUrl
应用程序发送邮件。简单的案例很好:
var uri = new Uri ("mailto:info@example.com");
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString ()));
但是,如果我想发送compilex mailto
uri,例如,它需要某种编码。
var uri = new Uri ("mailto:info@example.com?subject=Hello, World!");
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString ())); //FAIL
我已经尝试System.Net.Webutility.Encode()
,但这不起作用。
答案 0 :(得分:1)
WebUtility.UrlEncode
确实有效。但NSUrl
输入有限。
我通过从输入字符串中删除奇怪的字符来修复此问题。
var subject = Regex.Replace (subject, @"[^\u0000-\u00FF]", string.Empty);
var uri = new Uri("mailto:info@b4c.be?subject=" + WebUtility.UrlEncode(subject));
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString ()));