Можно ли встроить HTML с JS в QWebkit
Вопрос
Нужно ли мне загрузить объекты сценария Java в QWebkit, когда мое приложение загружается
Я могу использовать SETHTML с HTML и строкой скрипта Java, отформатированной, но очень сложно поддерживать.
Мой вопрос в том, что я могу встроить HTML и Java Script в качестве ресурса в QWebkit?
Также я не то, что HTML и JavaScript доступны пользователям приложения
Решение
Да, ты можешь.
Просто добавьте ваши 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"))
Работать (": / Ресурс / путь" не работает для меня). Что я в настоящее время делаю это:
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: / URL, прочитайте файл из ресурсной системы и отвечайте с этим, хотя тогда вы должны управлять типами MIME И такой (например, если ресурс - это изображение) самостоятельно ...)