1

誰かがウェブビューで実行されているアプリのサードパーティのスクローラーについて調査したり、実際に良い経験をしたりしていますか? 特に、スクロールする分割が複数ある場合は?? つまり、ナビゲーション パネルと詳細パネルを備えた Web ビューです。

スクローラーを必要とする分割が 1 つだけの場合はスムーズに動作しますが、上記の状況では非常に不安定です。多くの開発者がこの問題に遭遇したと確信しています。

iScroll を他のプラグインと一緒に試してみましたが (これまでのところ最高です)、スクロールの品質は望ましくありません。サーバーから取得した一部の HTML ドキュメントのスタイルを微調整する必要があるため、iFrame を使用できません。HTML 分割でネイティブ スクローラーを呼び出す方法をオンラインで検索しましたが、方法が見つかりませんでした。どうすればこれを行うことができますか?

さまざまなデバイスで API の 9 から 15 を使用して遊んでいますが、非ネイティブのスクローラーのパフォーマンスに関しては違いが見られません。これがあなたの答えに役立つなら、私は現在15でアプリを開発しています。また、ハードウェア アクセラレーションをオフにしていますが、これが最適です。

私は jqm、Sencha などで遊んでみましたが、満足のいくスクローラーを持っていることがわかりました。彼らが何を使っているか知っている人はいますか?私がこれらのプラットフォームを主に使用していない理由は、バルクおよびその他のパフォーマンスの問題です。

現在、生の JavaScript を使用してアプリを構築しています。これにより、Web ビュー レイアウト内のすべてのアニメーションでパフォーマンスが大幅に向上することが証明されています。有名なクロス プラットフォーム ソリューションよりも大幅に優れています。残念ながら、私は独自のスクローラーを構築するのに十分な経験がないため、すぐに使えるソリューションを見つける必要があります。

JavaScript を使ってアプリを作成するのが得意な他の人が高品質のアプリを構築するチャンスを得ることができるように、アイデア、リード、またはソリューションは非常に高く評価されます。

経験と専門知識とともに、使用していた API レベルを含めてください。

thnx

4

1 に答える 1

1

これについて多くのテストを行いました。私の経験上、問題は JavaScript ではなく、webview 自体にあるため、HTML のみに基づくサードパーティのスクロールはお勧めしません。

1) WebView での iframe のパフォーマンスが弱い弱い弱い。iframe 内に配置するだけで、(複雑な) アプリのパフォーマンスが 40% 近く低下しました。さらに、ハードウェア アクセラレーションを使用すると、さらに多くの問題が発生します。

2) div の内容が単純で短い場合、DIVS のスクロールは許容されますが、より複雑な内容をスクロールに追加すると、パフォーマンスが低下します。たとえば、私の場合、すべてを ul/li で囲む (遅い) かどうか (著しく速い) で違いがありました。ただし、その感覚は完全ではありません。つまり、ネイティブ スクロールに慣れている場合は、ネイティブ スクロールではないことがわかります。

3) 本体の生スクロールがとても良い。その上、オーバースクロールの光る効果など、ネイティブのようなフィードバックが得られます。ただし、このスクロールは JavaScript を使用していないことに注意してください。ユーザーがスクロールできるのは WebView よりも大きなページであり、WebView がそれを処理します。 . 私の場合、これがユーザーに求めていた唯一の受け入れ可能なスクロール エクスペリエンスでした。

だから私は混合ソリューションを持ってきました: 私は JavaScript 呼び出し可能な Java 関数を実行し、それが iframe であるかのように、要求されたサイズの別の webview を開くようにしました。 、そして改善はすばらしかったです。

より多くの事:

4) Java (scrollTo) から WebView をスクロールすることは、私の場合、スワイプする巨大な HTML ページ (雑誌のようなもの) をロードしていた場合に非常に役立ちました。Webview に Java からスクロールするように依頼した場合のパフォーマンスは、JavaScript に依存してスクロールを行うよりもはるかに優れていました。

5) ハードウェア アクセラレーションは、スクロール速度を 100% 向上させます -setLayerType(HARDWARE)- しかし、それを使用できるようにするには、HTML を非常にシンプルに保つ必要があります。Display:none/block などのようなものは、アプリケーションを完全に壊します (詳細については、Android 4.2.2 に触れるまで WebView がレンダリングに失敗するをご覧ください)。

6) 大きな画像に HTML5 アニメーションを使用すると、スクロール エクスペリエンスが完全に失われます。

7) これはすべて 2 か月で無効になります。グールはレンダリング エンジンを「Blink」に置き換えているため、何が起こるかはわかりません。私は落ち着きがありません。

于 2013-05-12T00:59:55.010 に答える