Вопрос

Нужно ли мне загрузить объекты сценария 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 И такой (например, если ресурс - это изображение) самостоятельно ...)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top