現在、私はHTML、JS、CSS、グラフィックスなどをローカルにハードディスクに保存し、QWebFrame::SetUrl(QUrl::fromLocalFile("appFolder\html\index.html"))
を使ってアクセスしています。ある時点では、ローカルに保存されたファイルを暗号化する必要があります。そのため、要求されたときに復号化する方法や、すべてを復号化してメモリにアクセスしてその方法にアクセスする方法を探しています。QTWebKitを使用してメモリに保存されたウェブサイトを表示
私はQWebFrame::setContent(htmlData)
を使用してメモリからHTMLを読み込むことができるので、暗号化されたHTMLファイルを読み込み、メモリで復号化して表示することができますが、他のデータ(JS、CSS、グラフィックスなど)は現在サブフォルダに保存されていますか?
また、HTML、JS、CSSなどのすべてのファイルへのアクセス要求を傍受し、ロードされたときに復号化する方法はありますか?
NetworkAccessManager
を使用すると、createRequest
への呼び出しを傍受して、各ファイルがロードされていることを確認できますが、これを使用してその場でデータを復号化する方法はわかりません。スロット機能をfinished(QNetworkReply*)
信号に接続することもできますが、その時点でデータはすでに読み込まれています - QIODevice
の現在位置がファイルの最後を指しています。
正しいアドバイスやアドバイスがあれば、とても感謝しています。
QNetworkReplyクラスを継承し、QNetworkAccesManager :: createRequest()で使用する必要があります。この新しいクラスでは、finished()が発行される前に生データ(あなたの場合はdecrypt html)を変更することができます。 – Johnny
@Johnny:ありがとう - 確かに正しいトラックに私を置く。まだ実装するのはまっすぐではありませんでしたが、正しい方向に向けるのは良いことでした。 QFileNetworkReply.cppを見ると、QNetworkReplyをローカルファイルアクセスでどのように使用しているかを確認するのにも非常に便利でした。あなたが答えにあなたのコメントを少し詳しく説明したいのであれば、それを受け入れたものとしてマークします。もしそうでなければ、コードの概要を答えにします。もう一度感謝します - あなたは間違いなく問題のソートを手伝ってくれました。 – Rok