Не могу вызвать метод Flash (Swf) из Javascript в QWebView - PullRequest
1 голос
/ 10 августа 2010

У меня есть:

  • Swf-файл, который а) делает один из его методов доступным для внешнего мира через ExternalInterface.addCallback;б) вызывает предопределенный метод внешнего мира через ExternalInterface.call;
  • html-страницу, где находится этот Swf-файл.В этом html есть два метода javascipt: один для вызова Swf-опубликованный метод и один для вызова swf;
  • Qt-app, которое загружает эту html-страницу через QWebView-> QWebPage.

Когда я загружаю эту html-страницу в FireFox, все работает нормально: Swf можно вызывать из javascript и наоборот.Однако в Qt-app только swf может вызывать метод javascript, но не наоборот.Вызов метода swf завершился неудачно, и на консоли javascript было напечатано следующее сообщение: «Ошибка вызова метода в NPObject».

Есть идеи, как заставить Qt-приложение вести себя как FireFox, т.е. сделать возможным вызывать Swf из javascript?Будем благодарны за любую помощь,

Фоны:

  • Qt 4.6.2;
  • Kubuntu 10.04;
  • Swf был построен с Flex 4;
  • Swf является локальным доверенным лицом.

1 Ответ

1 голос
/ 12 августа 2010

Исправлена ​​проблема самостоятельно.

Исходный код для загрузки html-страницы был таким:

QFile html(<theHtmlPageFileName>);

html.open(QIODevice::ReadOnly);

m_page->mainFrame()->setContent(html.readAll());

Переписанный вариант:

m_page->mainFrame()->load(<theHtmlPageFileName>);

В последнемВариант все работает отлично.

Кстати: под Windows первый вариант тоже работает.

...