質問編集履歴

2 質問内容を具体化しました

FumiakiNakao

FumiakiNakao score 180

2017/04/13 13:43  投稿

WebViewにおいて、ページのロードの完了をonPageFinishedを使わずに待ちたい
AndroidでwebViewをつかったアプリ開発をしています
現在以下のようなことを実現したいです
---
処理1:現在のwebページA上にあるリンクをクリックし、別ページBに飛ぶ
処理2:ページB上にあるリンクをクリックし、別ページCに飛ぶ
menuのなかのあるアイテムが選択された際、処理A,Bを連続して行う
---
これをwebView.loadUrlの2文で行おうとすると、処理1は正確に実行されるのですが、
処理2は実行されません
おそらく、ページBの読み込みが終わらないままに処理2を実行しているからだと思います
そこで、処理1が終わったのち、ページBが完全に読み込まれるのを待ってから、処理2を
実行したいのですが、さらにそれを**onPageFinishedを使わずに**やりたいです
なぜなら、onPageFinishedを使ってしまうと、処理1以外の方法でサイトBに飛んだ時に
処理2がじっこうされてしまうことを防ぎたいからです
menuを使う際以外は、webViewを普通のブラウザのようにつかいたいのです
対策として、wait関数を使ってみましたが、時間をどんなに長くしても、理想とする
処理には至りませんでした
(具体的には指定時間だけ動作停止があった後に、ページBが表示された)
もし、これらを解決する方法をご存知のかたがいれば、ご教授お願いいたします
もし、これらを解決する方法をご存知のかたがいれば、ご教授お願いいたします
※補足
このサイトはログインが必要なページです
また、今回の処理はログイン状態を保持したまま実行したいと考えているので、単にページCに飛ぶということができません
  • Java

    23484 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    10003 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1 初心者アイコンをつけました

FumiakiNakao

FumiakiNakao score 180

2017/04/13 13:25  投稿

WebViewにおいて、ページのロードの完了をonPageFinishedを使わずに待ちたい
AndroidでwebViewをつかったアプリ開発をしています
現在以下のようなことを実現したいです
---
処理1:現在のwebページA上にあるリンクをクリックし、別ページBに飛ぶ
処理2:ページB上にあるリンクをクリックし、別ページCに飛ぶ
menuのなかのあるアイテムが選択された際、処理A,Bを連続して行う
---
これをwebView.loadUrlの2文で行おうとすると、処理1は正確に実行されるのですが、
処理2は実行されません
おそらく、ページBの読み込みが終わらないままに処理2を実行しているからだと思います
そこで、処理1が終わったのち、ページBが完全に読み込まれるのを待ってから、処理2を
実行したいのですが、さらにそれを**onPageFinishedを使わずに**やりたいです
なぜなら、onPageFinishedを使ってしまうと、処理1以外の方法でサイトBに飛んだ時に
処理2がじっこうされてしまうことを防ぎたいからです
menuを使う際以外は、webViewを普通のブラウザのようにつかいたいのです
対策として、wait関数を使ってみましたが、時間をどんなに長くしても、理想とする
処理には至りませんでした
(具体的には指定時間だけ動作停止があった後に、ページBが表示された)
もし、これらを解決する方法をご存知のかたがいれば、ご教授お願いいたします
  • Java

    23484 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Android

    10003 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る