Наверх
24.06.2014, 13:13

Adobe Air: Отправка изображения в соцсети и мессенджеры (Share)

Разрабатывая Photon, мы долго думали о том, как дать пользователю максимум возможностей для обмена фотографиями и при этом не увеличить и без того немалый объем приложения (один движок Adobe Air съедает около 9 мб). Сначала мы решили ограничиться сохранением во Вконтакте, в NoCENS и на локальный диск. Неплохие возможности с учетом того, что Вконтакте является основной соцсетью в России без реальных конкурентов, но перспективы на мировом рынке у такого сервиса близки к нулю.

Тогда мы нашли более интересное решение: зачем изобретать велосипед, когда есть универсальный механизм отправки изображения, вшитый в Android - "Поделиться" (Share). В него стекаются все места для отправки фото из приложений пользователя - социальные сети, мессенджеры, облачные хранилища, bluetooth, e-mail и многие другие. Теперь эта функция доступна в новой версии Photon для Android, а ниже мы расскажем о том, каким образом запустить Share из Air Android-приложения.

К сожалению, Adobe, сделавшая полную интеграцию с камерой и галереей, никакой поддержки "Поделиться" не сделала, но есть выход: Air поддерживает расширения .ane - пользовательские модули на Java/C, которые подключаются к основной Air-программе и могут компенсировать недостающие возможности. Одно из таких расширений - Android Sharing Extension, написанное Illuzor совсем недавно и открывающее неограниченные возможности для быстрого и удобного обмена изображениями, а также текстом.

1. Скачайте .ane расширение в папку с проектом. Подключите это .ane расширение к вашему проекту (в среде Flash Professional это делается в настройках ActionScript 3.0). В .xml дескрипторе приложения должно быть написано (может сгенерироваться автоматически):

<extensions>
<extensionID>com.illuzor.extensions.SharingExtension</extensionID>
</extensions>

2. Скопируйте файл с кодом ActionScript 3.0 в папку ПРОЕКТ/com/illuzor/sharingextension/, затем подключите библиотеку в основной код проекта.

3. Пример работы кода из Github:

var bitmap:Bitmap = ...;
// генерируем картинку из BitmapData с помощью встроенного JPEGEncoder (FP 11.3/AIR 3.3 or newer) var bitmapBytes:ByteArray = bitmap.bitmapData.encode(new Rectangle(0, 0, bitmap.width, bitmap.height), new JPEGEncoderOptions(70))); var file:File = File.documentsDirectory.resolvePath("image_for_share.jpg"); var stream:FileStream = new FileStream(); // сначала сохраняем файл в память stream.open(file, FileMode.WRITE); stream.writeBytes(fileBytes); stream.close();
//Теперь запускаем расширение для передачи сохраненного файла SharingExtension.shareImage(file, "Заголовок", "Сообщение"));

 Код выше работает только на Android, не забудьте обновить версию Air SDK до самой последней, скачав её с сайта Adobe. cap 

P.S. Скорее всего, вам понадобится также найти способ обновить галерею после сохранения файла на устройство. Я поставил RefreshGallery.ane, и он работает, но весит около 500 кб, что довольно много для такой простой задачи, и в сети есть менее весомые аналоги.

технологии Adobe Отправка изображения соцсети мессенджеры Share программирование flash Android

 
  0 
548

Login NoCENS

Register

Forgot password

Donate


♥ 3
Send link to Twitter
Send to Facebook
Similar posts
Comments
Information

Members of Гости cannot leave comments.