問題タブ [webviewclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
12448 参照

android - Android WebViewClient コールバックが頻繁に呼び出される

私が電話をかけるとき、電話は1回しか受けず、電話は受けないWebView#loadUrlはずだと思っています。ただし、(常に WebView#loadUrl を呼び出して true を返すことによって実装します) を取得し、次に同じ URL で 2 つの呼び出しを取得します。WebViewClient#onPageFinishedWebViewClient#shouldOverrideUrlLoadingWebViewClient#shouldOverrideUrlLoadingWebViewClient#onPageFinished

読み込んでいるページは、多くの ajax リクエストを使用しています。ajax リクエストは ? を呼び出しWebViewClientますか? 私のページにはメタリフレッシュがありません。

これはかなりイライラします。私は何か間違ったことをしていますか?

0 投票する
8 に答える
91007 参照

android - WebViewClientで一般的なJavaScriptを有効にする

グーグルで答えを探している間、解決することが不可能であるように思われる問題で立ち往生しているのは私だけではないようです。

カスタムWebViewClientを使用してWebViewを作成することができました。これにより、プロセスダイアログを作成し、URLを読み込めなかった場合にエラーメッセージを表示することができます。

しかし、これはJavaScriptに問題を引き起こします。私がロードしているURLには、いくつかのHTML要素のCSSスタイル(要素の表示または非表示)を変更したり、クリック時に別の場所にリダイレクトしたりするJavaScriptが含まれています。しかし、WebViewClientを使用することにより、それらのいずれも機能しません。

これが私がページをロードする方法です:

これはおそらくもっと賢い方法で行うことができますが、私はJavaとAndroidの両方の開発に慣れていません...

WebViewClientのJavaScriptを有効にすることは可能ですか?WebViewClientを削除すると問題は解決しますが、ページエラーが発生したとき、または読み込みが完了したときにイベントをキャッチできません。

0 投票する
4 に答える
18725 参照

android - FacebookのAndroidWebViewLike Button

私はAndroidWebViewでFacebookのような機能を作ろうとしています(プロジェクトの仕様では、ブラウザーを開くことや、アプリケーション以外のアクティビティは許可されていません)。

したがって、制限はWebViewで実行する必要があるということです。私はそれをダイアログにすることができました、そしてユーザーの「いいね」ボタンをクリックすると、それ(WebView)は(同じビューで)Facebookのログインページに正常にリダイレクトされます。認証が成功すると、 (ダイアログ内の)はFacebookヘッダーのある空白のページWebViewにリダイレクトされます。

興味深いことに、ユーザーが空白のダイアログを離れて「いいね」ボタンをもう一度クリックすると、完全に(同じように、または異なるように)機能します-それはどういうわけか認証をアクティブに保ちます。空白のページを解決するために、私は次のことを試しました/使用しました:

  • WebViewClientおよびを使用しshouldOverloadUrlForwardingて、プロセス全体を同じWebViewダイアログに保持します。
  • JavaScriptを適切に実行するために使用WebChromeClientする-ログイン後にJavaScriptがないと、好き/嫌いにすることはできません。
  • setUserAgentString()ChromeやFirefoxなどの他のブラウザをシミュレートするために使用してみました
  • SSLエラー証明書の処理を試みました(APIレベル8で)(でWebViewClient

    @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); }

  • 使用(およびこれらのすべての可能な組み合わせ)

    webView.getSettings().setAppCacheEnabled(true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

  • を使用してCookieを永続化しCookieSyncManagerCookieManager手動で処理することも試みました。

これはすべて結果がありませんでした。私は本当に助けに感謝ます!

0 投票する
2 に答える
13191 参照

android - shouldOverrideUrlLoadingが機能しない/ページの読み込み中にリンククリックをキャッチする

WebViewClient.shouldOverrideUrlLoadingを使用して、WebViewでのリンククリックをキャッチしています。これは約95%の時間で機能しますが、単に呼び出されない場合もあります。

私はこれらの3つの状況でそれに気づきました:

  1. リンクがページを指している場合、それらはすでに存在しています。これはそれほど大したことではなく、バグが報告されています。
  2. ページがまだ読み込まれている間に、ユーザーがリンクをクリックしても、それをキャッチすることはめったにありません。を呼び出さずにリンクを開くだけshouldOverrideUrlLoadingです。
  3. 無作為に。過去数か月にわたってこれを実験していると、時々それがうまくいかないことに気づきました。まれですが、実際に発生します。

今、私の質問は主に問題2を修正する方法です。他の問題はそれほど重要ではないからです。ただし、誰かが1または3のいずれかを解決した場合は、それについて聞きたいと思います。

また、でさまざまな戻り値を試しましshouldOverrideUrlLoadingたが、常にtrueを返すことが最良の結果であるように見えることに気付きましたが、上記の問題は依然として発生します。

0 投票する
2 に答える
9364 参照

android - 「window.location.href」がタイムアウト コールバックで変更された場合、shouldOverrideUrlLoading(...) は実行されません

JavaScript関数「gotoMainPage()」があります


現在、 WebViewClient は、ユーザーがこの div をクリックするなどの「直接的なユーザー操作」の結果として実行されたshouldOverrideUrlLoading(..)場合に呼び出されます。ウェブビュー。gotoMainPage( )
<div.... onclick='gotoMainPage();'/>

setTimeout( gotoMainPage, 100 );XMLHttpRequestshouldOverrideUrlLoading(..)

明らかな説明がありませんか、それともバグですか?

誰?

0 投票する
2 に答える
2520 参照

java - Android アプリケーションが webView ではなくブラウザ アプリケーションを開いています。これを停止するにはどうすればよいですか?

現在、特定のボタンを押すと、Web ページを webView に開く意図が開始されますが、代わりにブラウザ アプリケーションが開き、必要ではないアドレス バーが表示されます。

いくつかの調査を行った後、shouldOverrideUrlLoading() メソッドを使用してこれを停止し、webView でページを開くことができることがわかりましたが、コードにこのメソッドを実装する方法がわかりません。助けていただければ幸いです!

これは、Webページを開こうとしているクラスにあるものです。

0 投票する
6 に答える
22058 参照

android - 404 エラーで Android WebViewClient onReceivedError が呼び出されない

こんにちは
リストビューには、サーバーから画像ファイルをロードする必要があるWebビューがあります。画像が存在しない場合、ダミー画像が必要です。試してみました

FrameLayoutにダミー画像を含むこのWebビューがあります.onPageFinishedリスナーは、すべての画像URLが読み込まれた後に呼び出されますが、404エラーを生成するURLに対してonReceivedErrorは呼び出されません。

0 投票する
3 に答える
18327 参照

android - WebView.loadURL() で存在しない URL を指定すると、WebViewClient.onPageStarted( ) が 2 回呼び出される

これが私のコードです


次のログに結果が表示されます。

onPageStarted( ) への別の呼び出しに注意してください ... 誰かがこの背後にある理由を知っていますか? 乾杯!

0 投票する
1 に答える
1466 参照

android - onNewPicture() はいつ呼び出されますか?

onNewPicture()のドキュメントには次のように書かれています:

写真が変わったことをリスナーに通知する

私の質問は次のとおりです。画像はいつ変更されますか?

一部の Web ページでは多数の onNewPicture() が生成されるため、WebView でページをレンダリングする過程で明らかに「画像」が何度も変化することに気付きました。

WebView の画像を変更する理由は何ですか?

生成される onNewPicture() 呼び出しが 2 回未満のページ ページは見たことがありませんが、特定の HTML ページに対して onNewPicture() が複数回呼び出されることが保証されていますか?

0 投票する
1 に答える
1815 参照

android - リンク フィルタリングに関する Android WebView の問題

誰かが私が太っている場所を指摘してくれることを願っています.

私は webviewclient を呼び出し、読み込みをオーバーライドして、mailto リンク (機能している) と特定の外部 URL (機能していない) をキャッチしています。特定のリンクは、非モバイル サイト リンクのブラウザでの起動にすぎません。私はこれを理解したいです。

return true と return false で遊んでみましたが、ブラウザを意図しないバージョンを試しました。それらのほとんどすべてが、ブラウザではなく Web ビューでリンクを開き、そうでないものは何もしませんでした。

mailtos はうまく機能していますが、外部リンクで何が欠けていますか?

必要な場合は、次のように Web クライアントを呼び出します。