0

Webビューが正しくロードされていないときにアラートを表示したい。接続が失敗したときにすでにアラートを表示していますが、Webビューがキャッシュからロードされている場合はそのアラートを表示したくありません。解決策は、webviewがキャッシュから正しくロードされたかどうかを知ることかもしれませんが、その方法がわかりません。何か案が?ありがとう!

4

3 に答える 3

1

考えられるすべてのケースで、完全に機能するソリューションを見つけました。これは、キャッシュデータを手動で保存および取得することに基づいています。Webビューをキャッシュしている場合は、保存した場所からロードします。そうでない場合は、インターネット接続を確認し、「カスタム」キャッシュ(アプリのキャッシュディレクトリにあります)に保存します。次に、Webビューが「キャッシュ」されておらず、インターネットに接続されていない場合にのみ、接続アラートを表示します。

于 2013-07-07T09:24:30.497 に答える
0

これが役立つかどうかはわかりませんが、次のコードを使用して、Webビューでエラーが検出されたときにアラートダイアログを表示します。

@Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
        AlertDialog.Builder localBuilder2 = new AlertDialog.Builder(Webview_Main.this);
        localBuilder2.setTitle(R.string.webview_error_received_title);
        localBuilder2.setMessage(R.string.webview_error_received);
        localBuilder2.setIcon(R.drawable.ic_launcher);
        localBuilder2.setPositiveButton("Ok",
                new DialogInterface.OnClickListener() {
            public void onClick(
                    DialogInterface paramDialogInterface,
                    int paramInt) {
                finish();
            }
        });
        localBuilder2.show();
    };
于 2013-04-16T19:00:11.563 に答える
0

ついにハックを見つけましたが、それが最善の方法ではないと確信しているので、もっと可能な解決策を受け取りたいと思います。「onScaleChanged」イベントを使用して、Webビューが画像をロードしたかどうかを判断しています(私の場合は、画像のみをロードします)。このイベントは、インターネットまたはキャッシュから画像をロードするときに発生するため、特別なスケール値で発生した場合は、画像がロードされていないことを意味します。場合によっては、画像のサイズと比率によっては、これらの値は正しく読み込まれたかどうかを示しませんが、ほとんどの場合はそうなります(画像の比率を選択すると、常に正しく機能します)。

于 2013-06-06T10:28:52.533 に答える