Я хочу отправить электронное письмо из моего приложения phonegap + sencha touch, используя простую ссылку mailto. В письме содержится тело со ссылкой, в качестве параметра которой используется сложная строка JSON, которую я также хотел бы закодировать, чтобы получатель мог просто щелкнуть ссылку. Если я просто возьму строку JSOn, вставленную в тело, и закодирую тело, тело письма будет отображаться правильно перед отправкой, но если я попытаюсь закодировать строку JSON перед добавлением ее в ссылку на почту, только тему и почтовый адрес, а не тело показано.
Это источник для создания mailto-ссылки:
var key = encodeURIComponent(albumlist);
var msg = {
subject : "Mein Photoalbum",
body : "Du wurdest eingeladen Dir mein Photoalbum anzuschauen.\n\n"+
"Klicke dazu einfach auf folgenden Link:\n"+
"http://photoalbum.incom-grosche.com/photoalbum/index.html?userid="+
userid+"&albumlist="+key+" \n\n"+
};
window.location = "mailto:?" + Ext.urlEncode(msg);
Если я просто поместил список альбомов напрямую вместо ключа, тело будет интерпретировано правильно.
Вот полная mailto-строка перед помещением в window.location:
mailto:?subject=Mein%20Photoalbum&body=Du%20wurdest%20eingeladen%20Dir%20mein%20Photoalbum%20anzuschauen.%0A%0AKlicke%20dazu%20einfach%20auf%20folgenden%20Link%3A%0Ahttp%3A%2F%2Fphotoalbum.incom-grosche.com%2Fphotoalbum%2Findex.html%3Fuserid%3D100798134114820183945%26albumlist%3D%255B%257B'albumid'%253A'5702343608088818753'%252C'authkey'%253A'Gv1sRgCPqpv8yA7OvChQE'%257D%255D%20%0A%0ASollte%20der%20Link%20nicht%20funktionieren%2C%20melde%20Dich%20auf%20http%3A%2F%2Fphotoalbum.incom-grosche.com%2F%20mit%20folgenden%20Angaben%20an%3A%0A%0ABenutzerkennung%3A%20100798134114820183945%0ASchl%C3%BCssel%3A%20%5B%7B'albumid'%3A'5702343608088818753'%2C'authkey'%3A'Gv1sRgCPqpv8yA7OvChQE'%7D%5D
Работает в Chrome. Я использую PhoneGap 1.2 + Sencha Touch 2.0 PR3 + Android 3.1