1

リモートnode.jsサーバーに接続するsocket.ioクライアントを含むページを実行しているWebViewがあります。問題は、WebSocketがAndroid WebViewでサポートされていないため(Android Chromeブラウザーにあるため)、xhr-pollingにフォールバックすることです。

onProgressChangedリスナーがありますWebChromeClientが、xhr-pollingはページの読み込みを継続します。進捗状況をログに記録すると、90〜95%に達し、それ以上取得できません。これは、読み込みインジケーターを閉じたり、ページを完全に読み込む必要があるその他のアクションを実行したりできないことを意味します。

xhr-pollingとにかく、Androidにページの読み込みの一部ではないと思わせることができますか?または、回避策はありますか?まだテストしてjsonp-pollingいません。ハック/回避策ではなく、この問題の解決策を希望しますが、最終的にはアプリを機能させたいだけです。

PS、私はandroidのsocket.ioとWebSocketのネイティブライブラリを知っています。ただし、これはすべてWebViewで実行する必要があります。

ありがとう

4

2 に答える 2

1

問題が見つかりました!

socket.io-client では、ここに XHR + webkit ブラウザーの場合、特別な遅延があるようです:

https://github.com/LearnBoost/socket.io-client/blob/0.9/lib/util.js#L203

ご覧のとおり、携帯電話には 100 ミリ秒では不十分です。少なくとも 500 ミリ秒は変更する必要がありました。作者はこのユースケースを覚えていなかったと思います! これでsocket.io-clientにパッチを当てて利益を上げましょう:)

于 2013-03-22T16:42:22.767 に答える
0

より良い解決策が見つかるまで、回避策を使用しています。毎回、進捗率が少なくとも 90% に達することに気付きました。ですから、100% 待つのではなく、90% 待つのです。90% でも、ほとんどすべてのページが読み込まれていることがわかります。90% 以降、ページに視覚的な変更は加えられていません。

于 2013-01-11T11:13:43.987 に答える