問題タブ [webchromeclient]
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.
android - webview からブラウザに URL を渡そうとしています
高さ 60 dp の webview を使用しており、ローカルの html ファイルをそれに渡しています。デフォルトでは、webview のリンクをクリックすると、ブラウザを開く必要があります。しかし、奇妙なことに、webviewでリンクを開きます.webviewクライアントも試して、インテントを介して応答URLをデフォルトブラウザに渡そうとしましたが、無駄でした..
私のコードスニペット:
android - 外部クラスからのアクティビティ メソッドの呼び出し
私は、このすべてのアプリケーション/アクティビティ コンテキストに本当に混乱しています。自分のクラスWebChromeClient
やConnectionChangeReceiver
(ネットワーク接続の変更を検出する) など、クラスからいくつかのアクティビティ メソッドを呼び出したいと考えています。
コード例:
それを達成する方法は?メモリリークを回避するのに役立つ賢明なパターンはありますか?
android - JavaScript ウィンドウを AlertDialog で開く
私のアプリでは、webview が正しく表示されています。サイトには、クリックすると window.open() がいくつかの情報を表示するボタンがあります。onCreateWindow メソッドをオーバーライドして webchromeclient を追加し、setSupportMultipleWindows(true) を webview に追加しました。呼び出されますが、ページのコンテンツをダイアログに表示する方法や、このページを webview の新しいウィンドウに表示する方法はわかりません。なにか提案を?
android - WebビューのAndroidプログレスバーが2回表示される
を使用してAndroid用のシンプルなアプリを作成しようとしていますprogress bar
。すべてが正常に動作します。しかし、ここで2つの問題
1)アプリケーションを起動すると、読み込みの進行状況が2回表示されます。
2)最初のページの読み込みが完了した後、プログレスバーを無効にするにはどうすればよいですか。クリックするたびにプログレスバーを表示したくありません。
これが私のコードです
android - ロケーションがオフになっている場合、WebChromeClient.onGeolocationPermissionsShowPrompt() は呼び出されません
ロケーションベースの機能を備えたページをロードする WebView と、 onGeolocationPermissionsShowPrompt() がオーバーライドされた WebChromeClient があります。位置情報サービスがオンの場合、ページの位置情報を有効にすると正常に機能します。
問題は、ユーザーの場所がオフになっている場合はオンにするように促したいのですが、オフになっている場合は onGeolocationPermissionsShowPrompt() を実行しないことです。この関数は、場所が利用可能な場合にのみ呼び出されますか?
android - WebChromeClient Websocket サポート?
Android には 2 つの Web ビュー (SetWebViewClient と SetWebChromeClient) が付属しており、通常の Web クライアントでは WebSocket がサポートされていないことは明らかです。
ただし、Android ブラウザー上の Chrome が Websockets をサポートしているように見えることを除いて、WebChromeClient の機能についてはわかりません。
WebChromeClient が Websockets をサポートしているかどうかを確認できますか?
(この特定の回答では、WebChromeClient に関する十分な情報が提供されませんでした。setWebViewClientと setWebChromeClient の違いは何ですか? )
javascript - Android WebChromeClient と javaScript の統合により、予期しない不正なトークンが生成される
ホーム.java
form.js
この関数は Bitmap オブジェクトを base64 文字列に変換し、外部の javascript を実行しますfunction (form.js -> processImage(var))
。ただし、 processImage を実行せず、 Uncaught を返しSyntaxError: Unexpected token ILLEGAL
ます。ただし、コメントを外すと
行とコメント
機能はしっかりしているようです。パラメータ変数の可能な値は次のとおりです。
私が求めているのは、javaScript 関数をパラメーターで動作させるにはどうすればよいかということです。ありがとう!
java - Android WebView HTML5/h.264/mp4 動画の再生、MediaPlayer の取得方法
私は を持ってActivity
いWebView
ます。中にWebChromeClient
入っています。MediaPlayer
その中には、ビデオ ビットの処理を返すためのコールバックがいくつかあります。例えば:
MP4 ストリームWebView
を HTML<video>
タグを使用して (インジェクション経由で) ロードすると、これらは起動しません。
アクティビティをfinish()
実行すると、logcat は次のように報告します。
WebView
なんとかして、クリアしてから破壊しても止められません。タグを使用してビデオをロードする場合、作成した特定のタグを強制的に使用する<video>
方法がわかりません。上記を報告する隠されたものを使用することが決定されているようです。のタグを介して作成されたを見つける方法はありますか?WebChromeClient
MediaPlayer
MediaPlayer
<video>
WebView
- アップデート
WebView を初期化するためのコードは次のとおりです。
「フレーム」コードは、ビデオを起動するための iframe です (少なくとも、Vimeo と YouTube の両方がこのアプローチを採用しているようです)。クラフトを避けるために、これを少し剪定しました。
その WebView クラス内には、次のクラスが存在します。
また、このクラス:
そして、運が良ければ、MediaPlayer から何らかの応答が得られる場合に備えて、通常の容疑者をすべて上書きしています。
補足として、私はリフレクションを使って掘り下げ、その方法で MediaPlayer を手に入れましたが、そのようなことをした後はいつも少し気が狂っています。MediaPlayer オブジェクトを持っていても、それを解放するのは気が進まないのです。MP のソース コードを少し調べてみると、悪いことは何も起こらないことがわかりますが、. . .
これはすべてのデバイスで発生するわけではありません。たとえば、HTC は Samsung よりも動作が優れているようです (「同じ」OS/API レベル - 私は 2 つのソース ツリーを比較するほど野心的ではありません)。
以下に示す動作は迷惑ですが、私 (logcat の出力を見ている人) にとってのみです。ユーザーまたはアプリケーションにとっては効果がないようです。MediaPlayer インスタンスを開始し、それは忙しいキャッシュアウェイ、そして(ユーザーが私のアプリを終了した場合)そこにそのディングルベリーをぶら下げたままにします. 私はこの時点で治療に多額のお金を縛っていますが、それは役に立っていないようです.
前もって感謝します。
android - 動作しないWebビューでファイルアップロードメニューを開く
AndroidAddMember.aspxページからWebビューでファイルアップロードメニューを開くことができる必要があります。私はこの修正を見つけましたが、正しく実装しているとは思いません。修理
ファイルアップロードボタンは、電話とPCのブラウザでは正常に機能しますが、Webビューで一度は機能しません。
以下の最初のcaseステートメントにボタン付きのページを埋め込みます。
どんな助けでも素晴らしいでしょう。ありがとう
android - webchromeclient で読み込む webview の取得
以下の新しいコードでこの Web ビューを開くことができません。コメントアウトしたコードで動作させました。Web ビューをロードするには、新しいコードを取得する必要があります。このサンプルコードを使用しています。ページが開かない問題を解決するにはどうすればよいですか? サンプルコード