будет нужно загрузить Java Script объекты в QwebKit, когда мое приложение загружается
я могу использовать setHtml с HTML и строки Java Script отформатированный, но его очень трудно Поддерживать ,
Мой вопрос: могу ли я встроить html и java-скрипт в качестве ресурса в Qwebkit?
Также я не хочу, чтобы html и javascript были доступны для пользователей приложенийМожно ли вставлять HTML с JS в QwebKit
ответ
Да, вы можете.
Просто добавьте JS/CSS в файл ресурсов (посмотрите документы Qt, если вы не знаете, как), а затем в вашем HTML просто используйте qrc:/file/path/or/alias
.
Например, если добавить JQuery в файл ресурсов, с псевдонимом /js/jquery
, а затем загрузить его, я бы поместить это в мой HTML файл:
<script type="text/javascript" src="qrc:/js/jquery"></script>
Загрузка HTML-файл из файла ресурсов кажется, больше усилий, поскольку я не могу заставить QWebKit::setUrl(QUrl("qrc:/resource/path"))
работать («:/resource/path» тоже не работает для меня). Что я сейчас делаю:
QString readFile (const QString& filename)
{
QFile file(filename);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream stream(&file);
return stream.readAll();
}
return "";
}
...
myWebKitObject->setHtml(readFile("qrc:/html/index"));
Создание ссылок на другие ресурсы HTML может быть проблемой. Если кто-нибудь знает, как с этим бороться, прокомментируйте! (Я полагаю, вы можете сделать это, переопределив сетевой контроллер для перехвата, когда webkit отправляет HTTP-запросы, и если они предназначены для qrc:/urls, прочитайте файл из ресурсной системы и ответьте им, хотя тогда вам нужно управлять типом mime и такие (например, если ресурс является изображением) самостоятельно ...)