Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Файловая система iOS - аттач к письму (http://www.flasher.ru/forum/showthread.php?t=181037)

Astraport 14.06.2012 00:20

Файловая система iOS - аттач к письму
 
Прошу помочь. Целый день пытаюсь разобраться с отправкой аттача (картинка) по почте в iOS.
Вот нативное расширение - https://github.com/pkoscierzynski/NativeMailExtension
Там есть флексовский пример, я его проверил - работает отлично. Вот более точная ссылка на код отправки письма: https://github.com/pkoscierzynski/Na...lHomeView.mxml


Пытаюсь интегрировать в свой проект - возникает ошибка в аттаче - Error #1009: Cannot access a property or method of a null object reference. Ошибка в массиве. При этом массив из всего одного элемента - ссылка на мою картинку. Все пути валидные, проверял. Вот код:

Код AS3:

protected function sendEmail_clickHandler(event:MouseEvent):void
                        {
                                var pathToFile : String = getPathToAttachment();
                                sendEmail( pathToFile, data.fileName, "image/jpg" );
                        }
 
                        private function sendEmail( _attachmentPath : String, _fileName : String, _mimeType : String ) : void
                        {
                                var subject : String = "Hey, there is a workaround for the orientation issue!";
                                var body : String = "Details in this blog post: http://blog.diadraw.com/native-extensions-for-mobile-air-apps-getting-round-the-orientation-issue";
 
                                var attachmentStr : String = _attachmentPath + "|" + _mimeType + "|" + _fileName;
                                var arr:Array = new Array(attachmentStr);
                                mailExtension.sendMail
                                        (  subject,
                                                body,                         
                                                urlText.text,
                                                "",
                                                "",
                                                arr);//здесь ошибка Error #1009: Cannot access a property or method of a null object reference.
                        }
 
                        private function getPathToAttachment() : String
                        {
                                var sourceFile : File = File.applicationStorageDirectory.resolvePath(data.url);
 
                                if ( !sourceFile.exists )
                                {
                                        return "";
                                }
 
                                var destination : File = File.documentsDirectory;
                                destination = destination.resolvePath(data.fileName);
                                sourceFile.copyTo( destination, true );
                                return destination.nativePath;                         
                        }

Проблема видимо в том, что в работающем примере картинка отправляется из директории приложения, а у меня картинка лежит в applicationStorageDirectory. Как поступить не понятно.

Испробовал все - не получается. Может что посоветуете?

DaFive 14.06.2012 11:02

Я не знаю особенностей ios. Но, копирнуть картинку в appDir из appStorage, приаттачить, отправить письмо и удалить картинку из appDir не получится?

Astraport 14.06.2012 11:11

DaFive, спасибо, но именно это и пытался делать. В iOS вообще безопасность в разы выше чем скажем на Андроиде. Сейчас похоже нащупал решение.

DaFive 14.06.2012 11:24

Отпишись, пожалуйста по результатам, если не сложно. Буду благодарен. Ибо тема интересна.

Astraport 14.06.2012 13:46

Цитата:

Отпишись, пожалуйста по результатам, если не сложно.
А что именно интересно? Как аттач к почте делать или по путям?

В общем проблему решил. Автор расширения нигде не указал что значит bundle в строке массива аттача. В общем пишем bundle - это если картинка или любой другой файл лежит в директории приложения, а если в документах, то documents:) И никакие пути не нужны (ни url ни nativePath), только название файла картинки. То ли я не всю документацию перелопатил, то ли автор решил об этом умолчать.

DaFive 14.06.2012 13:51

Вот это и было интересно, поскольку расширения пишутся чаще всего бойцами-одиночками, бывает сталкиваешься с тем, что оно работает, но с недокументированными плясками как в этом случае :) В любом случае, спасибо за ответ.


Часовой пояс GMT +4, время: 05:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.