これらは私が集めたWebviewに関する知識で、仕事で使っているものもあれば、まだ使っていないものもあり、自分の役に立つことを願って統一してまとめてみました。そしてみんな。また、どなたでも追記していただければ幸いです(もちろん間違いがあれば修正してください、よろしくお願いします)。
詳細については公式ドキュメントを参照してください:)
1. 権限
2. Webview オブジェクトを作成します
WebView webview = new WebView (this);
3. Web ページをロードする方法
loadData(String data, String mimeType, Stringcoding)des:WebView に指定されたデータをロードします。as:
String summary = "<html><body>You scored <b>192</b> points.</body></html>"; webview.loadData(summary, "text/html", null);
- loadDataWithBaseURL(StringbaseUrl, String data,文字列 mimeType 、文字列エンコーディング、文字列historyUrl)des:指定されたデータを WebView にロードし、指定された URL をコンテンツのベース URL として使用します。
- loadUrl(String url)des:指定された url をロードします。as: webView.loadUrl (" http://www.jianshu.com/"); //Web ページをロードします。 webView.loadUrl("file:///android_asset/html/index.html"); //Web ページをローカルにロードします。 assert directory webView.loadUrl( "content://com.Android.htmlfileprovider/sdcard/kris.html"); // SD カード html をロードします
- loadUrl(String url, Map
extraHeaders) 指定された URL をロードします追加のヘッダーを追加します。 - postUrl(String url, byte[] postData)des: "POST" メソッドを使用して postData を含む URL をこの WebView に読み込みます。
- Intent を使用してシステム ブラウザー
Uri uri = Uri.parse("http://www.jianshu.com/"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
を呼び出します - 4. セットアップします。 Webview
webView.clearHistory();webView.clearCache(true);webView.clearFormData();webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);// 隐藏滚动条webView.requestFocus();webView.requestFocusFromTouch();
- 5. Webview 補助クラス
JavaScript の使用の許可、キャッシュの使用の許可、組み込みの使用の許可など、WebView のプロパティ、ステータスなどを設定します。ズームコンポーネント、ISの設定サポートなど。
公式ドキュメント
- WebSettings オブジェクトを取得します: WebSettings mWebSettings = webView.getSettings();
- 例:
WebSettings mWebSettings = webView.getSettings();mWebSettings.setJavaScriptEnabled(true);// 支持JSmWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持通过js打开新的窗口mWebSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);//提高渲染等级mWebSettings.setBuiltInZoomControls(false);// 设置支持缩放mWebSettings.setDomStorageEnabled(true);//使用localStorage则必须打开mWebSettings.setBlockNetworkImage(true);// 首先阻塞图片,让图片不显示mWebSettings.setBlockNetworkImage(false);// 页面加载好以后,在放开图片:mWebSettings.setSupportMultipleWindows(false);// 设置同一个界面mWebSettings.setBlockNetworkImage(false);mWebSettings.setCacheMode(1);mWebSettings.setNeedInitialFocus(false);// 禁止webview上面控件获取焦点(黄色边框)
- 2>WebViewClient 主に、WebView がさまざまな通知やリクエスト イベントを処理するのに役立ちます (例: インターフェイスの表示方法など)リンクをクリックする、ページの読み込みが開始される、読み込み後に実行されるアクションなど)
公式ドキュメント
webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { //页面开始加载时 super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { //页面加载结束时 super.onPageFinished(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); // 这里进行无网络或错误处理,具体可以根据errorCode的值进行判断, } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); /** * 网页跳转: * 1.在当前的webview跳转到新连接 * view.loadUrl(url); * 2.调用系统浏览器跳转到新网页 * Intent i = new Intent(Intent.ACTION_VIEW); * i.setData(Uri.parse(url)); * startActivity(i); */ return true; }});
を使用する- 3>WebChromeClient WebView が Javascript ダイアログ ボックス、Web サイトのアイコン、Web サイトのタイトル、読み込みを処理するのを支援する
webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { // 获得网页的加载进度 newProgress为当前加载百分比 super.onProgressChanged(view, newProgress); } @Override public void onReceivedTitle(WebView view, String title) { // 获取网页的title,客户端可以在这里动态修改页面的title // 另外,当加载错误时title为“找不到该网页” super.onReceivedTitle(view, title); }});
- 6. JS との対話 addJavascriptInterface
前提条件
mWebView.getSettings().setJavaScriptEnabled(true);
- 使用
mWebView.addJavascriptInterface(new JSInterface(), "jsInterface"); JSInterface对象:public class JSInterface { @JavascriptInterface public void methodA() { } @JavascriptInterface public void methodB(String webMessage) { }}
注: 1.JavascriptInterface は、バージョン 4.2 で Google によって追加された新しいアノテーションです。を避けるためにセキュリティ リスクについては、4.2 より前のシステム バージョンの詳細と適応を参照してください: Android WebView の Js オブジェクト インジェクション脆弱性ソリューションに加えて、オープン ソース プロジェクトのsafe-java-js-webview-bridge が addJavaScriptInterface() を onJsPrompt() に完全に置き換えます。 . 興味のある方はぜひ学んでみてください。 2. JS は Java を呼び出します:
window.js_callback.viewPicOnJavascript($('article img').index(this));
3. クライアントは JS を呼び出します
mWebView.loadUrl("javascript:alert()");
7. キーボード
webview は前のページに戻ることができますか webView.canGoBack()
- webview は前のページに戻ります webView.goBack ( );
- WebView は前進できますか webView.canGoForward()
- webView は前進します webView.goForward();*
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event);}
- 8. その他
WebViewClient そうですね、以前はそのようなものがあるとは知りませんでした。 、今日この記事を書いているときに発見しました。名前から判断すると、Fragment で Webview をカプセル化する必要があります。興味のある方はここをクリックしてください: WebViewClient
- WebView のクッキーをクリーニング
CookieSyncManager.createInstance(this);CookieSyncManager.getInstance().startSync();CookieManager.getInstance().removeSessionCookie();
- 長押しイベントをブロック
webView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { return true; }});
- Webiew はズーム機能を保持しますが、ズーム コントロールを非表示にします (これは確実なトリックです)
webView.getSettings().setSupportZoom(true);webView.getSettings().setBuiltInZoomControls(true);webView.getSettings().setDisplayZoomControls(false);// setDisplayZoomControls是在Android 3.0中新增的API.,调用此方法前需要对系统版本进行判断
- WebView が上部または下部にスライドするかどうかを判断します
if (webView.getContentHeight() * webView.getScale() == (webView.getHeight() + webView.getScrollY())) { // 处于底端}if(webView.getScrollY() == 0){ //处于顶部}des:getScrollY() //方法返回的是当前可见区域的顶端距整个页面顶端的距离,也就是当前内容滚动的距离.getHeight()或者getBottom() //方法都返回当前WebView这个容器的高度getContentHeight()返回的是整个html的高度,但并不等同于当前整个页面的高度,因为WebView有缩放功能,所以当前整个页面的高度实际上应该是原始html的高度再乘上缩放比例
- ============================================== = =====
詳しい内容については、私のトピックに注目してください。転載元を明記してください: http://www.jianshu.com/users/c1b4a5542220/latest_articles
ありがとうございます。良い週末をお過ごしください。 !

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...

WebコードエディターのHTML要素分析では、多くのオンラインコードエディターを使用すると、ユーザーはHTML、CSS、およびJavaScriptコードを入力できます。最近、誰かが提案した...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
