• 締切済み

android webviewでのエラー処理

はじめて、投稿させて頂きます。  現在、andoroidで、webkitのwebviewを使用して、ブラウザアプリを作成 しています。 サーバが無い場合や回線が切断されている等で、エラーが発生した場合、 『ページが見つかれませんでした。』と表示されます。 この『ページが見つかれませんでした。』を表示させないで、エラー画面を 出す前のホームページ画面を保持する方法が分かりません。 (『ページが見つかれませんでした。』に遷移しない方法) WebViewClientのonReceivedErrorでエラーを検出して、goBackで戻す 方法を試しましたが、うまく出来る場合と出来ない場合(画面遷移が無い 画面で、プルダウンメニューで次のプルダウンメニューを求める場合)が 有り、なかなかいい方法が見つかりません。 他に良い方法をご存知ならば、教えて頂きたく、宜しくお願いします。 以上

みんなの回答

  • itaya32
  • ベストアンサー率0% (0/0)
回答No.1

私も同じことに悩みました。 とりあえずの解決方法を見つけたので報告します。 loadUrl する前にアクセスを行ってチェックすることで対応できそうです。 String downloadUrl = "http://XXXXXXXX"; try{ URL url = new URL(downloadUrl); URLConnection conn = url.openConnection(); InputStream in = conn.getInputStream(); webview.loadUrl(downloadUrl); }catch(IOException e){ } 上記の場合、InputStream に既にデータがあるので、InputStream→Stringへ変換し webview.loadData しても良いかもしれません。

関連するQ&A

  • webviewを使用したandroidアプリ

    現在WebViewを使用したandroidアプリを作成中です。 webview領域を更新するボタンを作成したいのですが、 手順がわからず困っています。 内容的には intentにてListViewを生成(タイトルと日付を表示)→リストをクリックすると タイトル(TextView)・日付(TextView)・詳細文言(WebView)が 別Activityにて表示される内容になっています。 詳細文言を表示されるページにてWebView領域更新ボタンを作成したいが うまく行かないという状況です。 現在作成した内容は下記になり、このコードで更新をすると WebView領域には何も表示がされない状況となります。 public boolean onOptionsItemSelected(MenuItem item) { WebView myWebView =(WebView)findViewById(R.id.webView1); switch (item.getItemId()) { case MENU_SELECT_A: //更新が押されたときの処理 myWebView.reload(); return true; } return false; } わかる方がいらっしゃいましたら、ご指導お願いいたします。

  • Android/WebViewにおけるプレビュー

    お世話になっております。 技術者ではなく、各制作者との連絡役として間に立っている者の為、 専門的な知識がないこと、先にお詫びいたします。 AndroidのWebViewにてWebページを表示させたいのですが 実際にAndroid端末上に適用せずとも、 PC上で、”WebViewでどのように表示されるか”を閲覧できる手段は ないでしょうか。 Webページ制作者に端末を貸し出したとしても 適用にはアプリ開発者が更新しなければならない為、 頻繁に”修正した箇所を適用してチェック”といった作業ができないのでは? と考えております。 できれば、Webページ制作者で気軽に 修正した内容が正常に表示されるかどうか、確認できればと思うのですが…。 インターネットにて調べてみましたが、求めている情報が見つかりませんでした。 良い方法をご存じの方、いらっしゃいましたらアドバイス頂けると助かります。

  • PHP セッション情報のDBへの受け渡し

    お世話になります。 標題の件について、以下のとおり説明します。 (1)1ページ目:入力フォームで入力した情報をセッションに保持 (主にプルダウンメニューの情報とテキスト) submitボタンで次画面へ ↓ (2)2ページ目:サムネイル写真をクリックした情報を保持+インラインフレームで拡大写真表示 (クリックした情報をプルダウンメニューに表示してセッションへ保持) submitボタンで次画面へ ↓ (3)3ページ目:サムネイル写真をクリックした情報を保持+インラインフレームで拡大写真表示 (クリックした情報をプルダウンメニューに表示してセッションへ保持) submitボタンで次画面へ ↓ (4)4ページ目:上記内容の確認画面 submitボタンで次画面へ ↓ (5)送信 現状、上記の流れでセッション情報を保持しつつメールでの送信が確認出来ています。 ですが、ページ遷移で確認画面から前画面へ戻って、例えば2ページ目の写真を変更して、submitで次画面へ遷移すると、3ページ目の情報がなくなり新たに写真を選択する必要になってしまいます。 なので、ページを前後遷移しても情報が保持された状態にするには、どうすれば良いでしょうか? データベースを使わないと出来ないことでしょうか? データベースに関しても勉強しておりますが、セッション情報をDBへ登録して、その後ページを遷移した場合に、データベースから呼び出すようなイメージなのでしょうが、それにはどうすれば良いのかが不明です。 お手数ですが、ご教授の程、よろしくお願いします。

    • ベストアンサー
    • PHP
  • androidアプリの開発 WebView

    androidアプリの開発について質問です。 現在intentによりデータを受信して表示する事までができたのですが、 受信したデータをWebViewにて表示をすると、 WebView領域にnull というテキストリンクまでもが表示されます。 通常のデータは正常に表示されています。 ちなみに null のテキストリンクをクリックしても ページが表示されませんというエラーが出るだけです。 どなたかご存知の方がいましたらご教授くださいませ。 以下ソース抜粋 if (intent != null) { String tmp = ""; String desc = ""; TextView tv; tv = (TextView) findViewById(R.id.item_detail_title); tmp = intent.getStringExtra("TITLE"); tv.setText(tmp); tv = (TextView) findViewById(R.id.item_detail_descr); tmp = intent.getStringExtra("DESCRIPTION"); tv.setText(tmp); WebView wv = (WebView) findViewById(R.id.Des); desc = WEBVIEW_BEGIN; tmp = intent.getStringExtra("Link"); desc += String.format(WEBVIEW_LINK, tmp, tmp); tmp = intent.getStringExtra("DESCRIPTION"); desc += tmp + WEBVIEW_END; wv.loadDataWithBaseURL("about:blank", desc, "text/html", "utf-8", null); }

    • ベストアンサー
    • Java
  • ブラウザ出力エラーのリカバリ方法を教えてください

    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:///~);での画面出力は可 以上です。宜しくお願いいたします。

  • Global.aspxでのエラー処理について

    VisualStudio2010でwebページ(C#)を作成しています。 共通エラー処理を実装したいため、Global.aspxにエラー処理を記述しています。 Application_Errorには、以下のようなエラー画面への遷移を Response.Redirect(Server.MapPath("~/error/globalError.html")); のように記述しています。 また、Session_Startにユーザ情報を取得して、Sessionに格納し、 ユーザ情報にエラーがあればエラーを発生させる処理も記述しています。 ここで、Sssion_Startでエラーが発生した際、 Application_Errorでエラー画面への遷移を行い、処理を終了させたいのですが、 Session_Startイベントが再度発生してしまいます。 さらに、SessionIDは変わっていないのに、Sessionに格納したユーザ情報がクリアされています。 これはなぜなのでしょうか? 再度発生させなくする方法はありますか?

  • エラーを元の画面に表示させるには

    http://income-seed.ck0.net/1000yen/demand.htm 上のページでは、テキストボックスに値を入力しなかった場合、別のエラー画面などに遷移せずに元のページにエラー表示がされます。 これと同じ仕組みを実現したいのですが、その方法論が思いつきませんので、皆様のお知恵をお借りしたいと思っています。よろしくお願いします。 具体的にコードで示して頂けたりすると非常に助かります。

    • ベストアンサー
    • PHP
  • JS プルダウン

    プルダウンで選択したものの説明を同じ画面のプルダウンボックスの下に 表示させる方法を教えてください。 画面遷移しないようにしたいです。 よろしくお願い致します。

  • 外部DBアクセスするAndroidアプリについて

    Androidアプリで、外部DBに登録されているユーザを検索→一覧画面に表示し、一覧画面に表示された詳細ボタンから詳細画面へ遷移する仕組みを作りたいと思っています。 Androidから直接DBアクセスするためにはサーバ側でポートを解放しなければならず、セキュリティ上よろしくないので、サーバにPHPプログラムを置き、DBアクセスはPHPで行いたいと思っています。 しかし、検索まではいくものの、Androidへの結果の返し方がわかりません。 どなたか方法をご存じの方いらっしゃいますでしょうか。 また、そもそもこういった外部DBにある大量データを扱うアプリの場合、全てWebviewにしてしまうのが一般的なのでしょうか?なるべくならAndroidのコンポーネントを使った画面にしたいと思っているのですが。。

  • プルダウンメニューがエラー

     いつもお世話になります。m(_ _)m 早速ですが Win98のPC、IE6 の環境で、プルダウンメニューのある HPがちゃんと表示されないことがあります。 5つや6つなど、少数のとき、画面はちゃんと 表示されるのですが、10個以上あると もう大変です。  流れたような表示になったり、全く(プルダウン メニューの所だけ)表示されなかったり。 もちろん入力できません。  素人で、説明、理解力に乏しい私ですが このような説明でピンとこられた方、ぜひ 原因・解決方法を教えてください。  よろしくお願いします。m(_ _)m

専門家に質問してみよう