2013-07-30 5 views
1

Я проверяю следующий код на iPhone4 (без сим-карты, но я не вижу, как это может иметь значение, так как его почтовая программа иначе работает отлично):Delphi xe4 IOS открыта почтовая программа не работает

SharedApplication и canOpenURL и т. Д. - все подпрограммы, предоставляемые XE4.

procedure TFormMain.sbContactsDetailsEmailClick(Sender: TObject); 
var 
    S: string; 
    NSU: NSUrl; 
begin 
// URL.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding); 
    S := 'mailto:' + '[email protected]' + '?subject=' + 'title' + '&body='; 
    NSU := StringToNSUrl(S); 
    if SharedApplication.canOpenURL(NSU) then 
    SharedApplication.openUrl(NSU) 
    ; 
end; 

К сожалению, это, кажется SharedApplication.canOpenURL (NSU) возвращает ложное. Я что-то делаю неправильно?

+1

В документе doco говорится, что openUrl подтверждает, что «_another_ приложение будет запущено для его обработки» (URL). Если вы введете свой URL-адрес в браузер, он откроет почтовый клиент, например? Является ли приложение связанным с mailto? – Jason

+0

@Jason Просто проверил, что вы сказали, и да, программа электронной почты всплывает, если я ввожу mailto: [email protected] в браузер. (Я также тестировал его с добавленной темой) – Tom

+0

Любой человек может ответить на него, и я награду за награду – Tom

ответ

2

я должен через него сам, но здесь идет:

сделать работу

'mailto:[email protected]?subject=test' 
'mailto:[email protected]?subject=test%20test' 

не работает

'mailto:[email protected]?subject=test test' 

(то есть решение для преобразования пространства в% 20)

+1

Итак, вам просто нужно ['URL encode'] (http://www.w3schools.com/tags /ref_urlencode.asp) эту строку. – TLama

+1

Да. Упрощенный комментарий, так как я должен был включить эту информацию в свой ответ. – Tom

Смежные вопросы