私の WebView ベースのコードは長すぎて (そしていくつかのモジュールに散らばって) ここに投稿できません。とにかく他の人に役立つ可能性のある一般的な手法を探しています。
基本的な Web ブラウザーを実装するWebView、WebViewClient、およびJavascriptInterface派生クラスのセットがあります。Omnitureを実行している Web サイトで、1 台の電話のみ (CyanogenMod 6 (Android 2.2.1) を実行している Nexus One)で、特定の (妥当な) 長さを超える URL を持つloadUrl()がフリーズすることを除いて、かなりうまく機能しているようです。、その後、最終的にonReceiveError()、 ERROR_IO ( -7 ) でタイムアウトになり、次の説明文字列が表示されます。
サーバーが通信できませんでした。あとでもう一度試してみてください。
明確にするために:同じ正確なコード、同じ正確なURLは、私がテストした他のすべての電話で問題なく動作します。
この異常をその電話のandroid.webkitの特定のバージョンのバグに帰することでこれを肩をすくめることができたかもしれませんが、これを回避できる何かが自分のコードに欠けているのではないかと疑っています。その理由は、まったく同じ電話で、WebView ベースのストック ブラウザがこの問題を示さないためです。
私は好奇心旺盛で細心の注意を払っていますが、これは興味深くやりがいのあるものであり、おそらく HTTP プロトコルのデバッグ手法をより深く掘り下げる絶好の機会だと思います。
たとえば、android.net.httpを利用して診断ログ メッセージを取得する方法があれば、それはすばらしいことでしたが、WebView と WebViewClient でそれを行うにはどうすればよいでしょうか?
これをトラブルシューティングする方法に関する提案やヒントはありますか?