Вход

Просмотр полной версии : AIR 2.0 и функция file.openWithDefaultApplication()


qmel
21.01.2011, 18:34
Здравствуйте!

Если кто-нибудь знает, подскажите, пожалуйста. При использовании AIR 2.0 и функции file.openWithDefaultApplication() - если в ОС назначена программа для такого типа файла, все открывается, если расширение файла попадает в список запрещенных, то я ловлю ошибку и вывожу окно с предупреждением. А вот если файл не запрещен, но ОС не знает чем его открыть, хотелось бы вывести стандартное окно операционки, где пользователь выбирает программу для открытия. Это возможно сделать?

alatar
21.01.2011, 23:04
А вы не допускаете возможности, что в операционке такого окна может не быть? AIR работает не только под виндой.

wvxvw
21.01.2011, 23:49
В виндовсе assoc команда это делает.
http://pcquest.ciol.com/content/linux/handson/299060101.asp
Вот тут в принципе правильно описано про Линукс, не взирая на КДЕ вс Гном и т.п. А вот как получить список всех возможных приложений... я не знаю... да и нет такого на самом деле ни в одной системе. Про маки - не знаю. Солярис - в жизни никогда не видел, но я думаю, что количество пользователей AIR на этой платформе ничтожно мало :) (я знаю только одного).

alatar
22.01.2011, 00:09
Помимо вышеперечисленного, есть еще Android, скоро выйдет поддержка в QNX. Зачем кроссплатформенное приложение привязывать к конкретной операционке?

wvxvw
22.01.2011, 01:45
Ну а что делать, если нужно, а во фреймворке не предусмотрено? Я вот сейчас мучаюсь придумываю пути получения изображения с передней камеры на андроиде... Да и вообще приложения для мобильников они как бы "условно кроссплатформенные". Их все равно отдельно компилировать, с другими настройками, так уж не грех и какой-нибудь CONFIG::android { . . . } добавить.

qmel
24.01.2011, 19:34
Спасибо за ответы!

Просто я надеялся, что раз разработчики AIR создали такую функцию как openWithDefaultApplication(), то они, наверное, подумали о возможном поведении пользовательского приложения, при попытке открытия файла неассоцированного ни с одной программой.

И что получается можно делать в таких случаях, просто выводить Alert.show("Нет подходящей программы для открытия") и все? И ничего более?

wvxvw
24.01.2011, 19:45
Можно прикинуться веником и отдать файл открываться дефолтному браузеру :) может он найдет адресата :)

qmel
02.02.2011, 12:24
Что-то я опять не знаю что делать. ОС Mac OS и Linux, если не найдено приложение с помощью которого можно открыть файл пораждают исключение, я его перехватываю, выдаю окно с предупреждением - ок. Но что делать с Windows, в документации по openWithDefaultApplication() написано: в Windows попытка открыть файл, с которым не связано ни одно приложение, заканчивается неудачей, при этом не выдается исключение. Т.е. в моем приложении просто не делается ничего. Этот момент как-то можно отловить/урегулировать?

Добавлено через 2 часа 54 минуты
И вообще можно ли засечь открыт ли в данный момент файл, есть ли к нему обращения из внешних прог?

alatar
02.02.2011, 15:21
И вообще можно ли засечь открыт ли в данный момент файл, есть ли к нему обращения из внешних прог?
Если файл заблокирован какой-нибудь программой, то при попытке записать в него вывалится исключение.