iOSでePubリーダーを作成しています。基本的に、私はuiwebviewを使用してxhtmlファイルをロードします。ページをめくるたびに、uiwebviewを使用してファイルをロードし、javascriptを呼び出して右オフセットまでスクロールする必要があります。ここに問題があります。一部のxhtmlファイルは大きく(> 2MBなど)、ロードに時間がかかりすぎます。したがって、ページめくりのアニメーションはそれほどスムーズではありません。したがって、uiwebviewAを使用してxhtmlを1回ロードでき、ページがめくるたびに、別のuiwebviewBを作成し、uiwebviewAから必要なhtmlコンテンツ(2ページ目など)を取得できると考えています。このようにして、htmlを小さいサイズに制限することができ、ページめくりのアニメーションはスムーズになります。私の質問は、オープンソースのjavascriptライブラリがその仕事をすることができるかということです。コメントは大歓迎です!!
2 に答える
あなたが説明しているように見える方法でHTMLドキュメントを分割するための意味のある明確な方法はありません。あなたは2つの非常に異なることを混乱させています:(1)レンダリングをページサイズのチャンクに分割することと(2)HTMLソースを分割すること。別の言い方をすれば、HTMLファイルを断片に分割して、レンダリングされた断片の順次構成が元のHTMLファイルのレンダリングと同じになるようなアルゴリズムは想像できません。言い換えれば、HTMLを分割する方法を理解するために、それが可能であると仮定すると、ページのレンダリングに関連する作業の多くまたはすべてを実行する必要があり、それは目的全体を無効にします。
HTMLを分割するという概念を放棄する必要があります。電子書籍リーダーはすべて、基本的にHTMLドキュメント全体を一度レンダリングしてから、「ウィンドウ処理」、「クリッピング」、「オフセット」、または場合によってはCSS領域を使用してページをめくります。
あなたが何をしようとしているのか理解できれば、私が考えることができるいくつかの選択肢があります。
ワークフローの早い段階で入力HTMLファイルを事前に分割して、入力HTMLファイルのサイズを縮小します。たとえば、私が知っているあるプロジェクトでは、ソース(X)HTMLファイルに追加のマークアップが少しあり、必要に応じてプリプロセッサにそれらを個々のファイルに分割する場所を指示します。この場合、これは、 CSS
page-break-*
プロパティを適切に尊重しません。次のページのレンダリングをグラフィックとして事前に計算し、ページめくりに使用します。
すでに説明したように、書籍のすべてのページにHTMLドキュメント全体を再読み込みするアーキテクチャを再考してください。それがあなたがそれをしたいと思うように導くのが単にページめくり効果であるならば、それからそれらをあきらめてください。
多くの電子書籍リーダーはページ付けを必要としないスクロールモードを提供し、一部(Himawari Readerなど)はスクロールモードのみを提供することを考慮して ください。これは実際には一部の読者が好むものです。スクロールバージョンを出力してから、バージョン2でページ付けを行うことができます。
あなたは本当にこれをチェックする必要があります:
そして、あなたが求めたことを正確に実行するこのデモ:
http://cubiq.org/dropbox/SwipeView/demo/ereader/
テキスト(本)を取り、画面サイズに合うようにテキストをページ分割します。
私はAndroidとiOSでデモをテストしました、そしてそれは素晴らしい働きをします!!