Javascript не запускается при загрузке файла с локального диска на Android

#javascript #android #flash

#javascript #Android #flash

Вопрос:

При попытке разработать какое-либо приложение для Android я столкнулся со следующей проблемой: я загружаю swf-файл в WebView , который выполняет вызовы js. Я хочу перехватить эти вызовы js, поэтому я использую WebViews.addJavascriptInterface() для этого. Все работало просто отлично, когда я загружал swf-файл с удаленного сервера, но когда я загружаю тот же swf-файл из файловой системы Android, методы javascript, похоже, не запускаются (по крайней мере, я их не вижу).

Есть идеи, что может вызвать эту проблему?

Я не говорю на js, но, насколько я знаю, в обоих случаях js работает в зависимости от размера клиента.

Спасибо за любой совет.

Ответ №1:

Я думаю, это из-за Flash sandbox. Когда вы запускаете файл локально, вы не можете запустить код Javascript, поскольку он выполняет действия за пределами SWF. Однако его запуск с удаленного сервера имеет привилегии изолированной среды домена. Проверьте эту ссылку для получения более подробной информации:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e3f.html

Комментарии:

1. Спасибо за ответ! Есть ли какие-либо способы изменить привилегии изолированной среды для файла, который я загружаю в локальную систему?

2. Нет. Они принудительно выполняются проигрывателем. Я полагаю, вы можете использовать изолированную среду local-with-networking для вызова функций JS. Однако вам придется отказаться от доступа к локальной файловой системе.

3. Спасибо! Очень жаль. Есть предложения по обеспечению связи между Android и локально открытым SWF-файлом? 🙂

4. У вас не может быть доступа к сети и файловой системе в SWF-файле. Если у вас есть сетевое разрешение в SWF-файле, и это локальный SWF-файл, то вы можете подключиться к браузеру Android.

5. Я думаю, мне не нужно разрешение сети, swf-файл загружается из хранилища устройства Android в браузер приложения (WebView), и мне просто нужно каким-то образом связаться с системой Android (мое приложение).