激凹みから立ち直る方法

javaでのAndroidアプリ作成時にWebKitを使って
エミュレータでのアプリからのブラウザ出力を試していましたが、
実行時に『ページが見つかりませんでした』と表示されます。
このエラーの解決方法がありましたらご教示ください。
なお、以下に現状を記載しています。

<Activity>
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
webview.loadUrl("http://www.google.co.jp");
setContentView(webview);
}

【現状】
・<uses-permission android:name="android.permission.INTERNET"></uses-permission>は設定済み
・実行デバイスを変更しても変化なし
・無線LANから有線LANに変更しても変化なし
・自身のネットワークはProxyサーバからのネットワークアクセスとなっており、
 それに合わせたアクセスポイントの設定はAndroidエミュレータ内で設定済み
・エミュレータのブラウザからhttp://www.google.co.jpへはアクセス可
・ソース内のエラーは無し
・assetsフォルダへのhtmlファイルの格納、webView.loadUrl(file:///~);での画面出力は可

以上です。宜しくお願いいたします。

A 回答 (1件)

WebViewには、WebViewClientというクライアントを組み込むことができます。

これは、setWebViewClientでWebViewに設定されます。このWebViewClientには、onReceivedErrorというメソッドがあり、ページ読み込みに失敗するとこれが呼び出されます。ですから、onReceivedErrorをオーバーライドしたWebViewClientクラスを作り、それをWebViewに設定することで、読み込みエラー時の処理を用意できると思います。ざっと以下のような感じです。(検証してません)

webview.setWebViewClient(new WebViewClient(){
@override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
// ここに処理を書く
}});
    • good
    • 0
この回答へのお礼

WebVIewClientをWebViewの中に組み込むことによってエラーに対する処理を用意できました。
このメソッドを用いてページ読込みエラーの対処をしていこうと思います。
早急の対応、ありがとうございました。
加えてもしご存知であれば、
loadUrlを用いて"http://www.google.co.jp"にアクセスできるようになる
リカバリ方法もご教示願いますが、いかがでしょうか?

私も異なる方法を検証しており、loadUrlを用いず

************************************************
Uri uri = Uri.parse("http://www.google.co.jp/");
Intent i = new Intent(Intent.ACTION_VIEW,uri);
startActivity(i);
************************************************

に変更し、intentとしてURL情報を飛ばすとブラウザ出力されるようになりましたが、

アクティビティが生成された状態から何も処理をさせずいきなりintentで飛ばすのは
少々違和感を感じています。


厚顔の限りのお願いで恐れ入りますが、ご対応宜しくお願いいたします。

お礼日時:2010/11/18 09:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!