アプリケーションの読み込み時に Java スクリプト オブジェクトを QwebKit に読み込む必要がありますか
? setHtml を HTML と Java スクリプト文字列をフォーマットして使用できますが、維持するのは非常に困難です。
私の質問は、HTML および Java スクリプトをリソースとして Qwebkit に埋め込むことはできますか?
また、アプリケーションのユーザーが html と javascript を利用できるようにする必要はありません。
1 に答える
はい、できます。
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:/ URL の場合は、リソース システムからファイルを読み取り、それに応答しますが、MIME タイプを管理する必要があります。など(たとえば、リソースが画像の場合)あなた自身...)