亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android 中 WebView 的基本用法詳解

 更新時(shí)間:2021年01月24日 14:44:48   作者:YKenan  
這篇文章主要介紹了Android 中 WebView 的基本用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

加載 URL (網(wǎng)絡(luò)或者本地 assets 文件夾下的 html 文件)
加載 html 代碼
Native 和 JavaScript 相互調(diào)用

加載網(wǎng)絡(luò) URL

webview.loadUrl(https://www.baidu.com/);

加載 assets 下的 html 文件

加載 html 代碼

// 兩個(gè)代碼差不多
// 偶爾出現(xiàn)亂碼
webview.loadData();
// 比上面的好一些, 可以友好解決編碼問題
webview.loadDataWithBaseURL();

網(wǎng)頁的前進(jìn)后退

// 網(wǎng)頁是否可以后退
webview.canGoBack();
// 網(wǎng)頁進(jìn)行后退
webview.goBack();
// 網(wǎng)頁是否可以前進(jìn)
webview.canGoForward();
// 網(wǎng)頁進(jìn)行前進(jìn)
webview.goForward();
// 網(wǎng)頁是否可以前進(jìn)/后退 steps 步
webview.canGoBackOrForward(int steps);
// 網(wǎng)頁進(jìn)行前進(jìn)/后退 steps 步
webview.goBackOrForward(int steps);

執(zhí)行 JS 代碼.

webview.loadUrl("javascript:alert('Hello world!')");
webview.evaluateJavascript("javascript:alert('Hello world!')", null);

2. 加載網(wǎng)頁

建立一個(gè)最簡(jiǎn)單的 html 文件

在這里插入圖片描述

WebViewActivity

package com.example.hello;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.webkit.WebView;

public class WebViewActivity extends AppCompatActivity {

 // 聲明
 private WebView wb;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_web_view);
  // 獲取
  wb = findViewById(R.id.wb);
  // 加載本地 html 文件
  wb.loadUrl("file:///android_asset/test.html");
 }
}

activity_web_view

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".WebViewActivity">

 <WebView
  android:id="@+id/wb"
  android:layout_width="match_parent"
  android:layout_height="match_parent" />

</RelativeLayout>

在這里插入圖片描述

加載網(wǎng)頁上的頁面

package com.example.hello;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewActivity extends AppCompatActivity {

 // 聲明
 private WebView wb;

 @SuppressLint("SetJavaScriptEnabled")
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_web_view);
  // 獲取
  wb = findViewById(R.id.wb);
  // 加載本地 html 文件
//  wb.loadUrl("file:///android_asset/test.html");
  // 加載網(wǎng)頁 html 文件
  // 支持 JS 和 DOM
  wb.getSettings().setJavaScriptEnabled(true);
  wb.getSettings().setDomStorageEnabled(true);
  // 防止所有后打開默認(rèn)瀏覽器
  wb.setWebViewClient(new MyWebViewClient());
  wb.setWebChromeClient(new MyWebChromeClient());
  wb.loadUrl("https://www.baidu.com/");
 }

 /**
  * 防止返回到之前的 Activity
  *
  * @param keyCode 按鍵
  * @param event 事件
  * @return true
  */
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && wb.canGoBack()) {
   wb.goBack();
   return true;
  }
  return super.onKeyDown(keyCode, event);
 }

 static class MyWebViewClient extends WebViewClient {
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
   view.loadUrl(request.getUrl().toString());
   return super.shouldOverrideUrlLoading(view, request);
  }

  @Override
  public void onPageStarted(WebView view, String url, Bitmap favicon) {
   super.onPageStarted(view, url, favicon);
   Log.d("WebViewClient", "Page started...");
  }

  @Override
  public void onPageFinished(WebView view, String url) {
   super.onPageFinished(view, url);
   Log.d("WebViewClient", "Page Finished...");
  }
 }

 /**
  * 添加所有記錄和 Title
  */
 class MyWebChromeClient extends WebChromeClient {
  @Override
  public void onProgressChanged(WebView view, int newProgress) {
   super.onProgressChanged(view, newProgress);
  }

  @Override
  public void onReceivedTitle(WebView view, String title) {
   super.onReceivedTitle(view, title);
   setTitle(title);
  }
 }
}

在這里插入圖片描述

到此這篇關(guān)于Android 中 WebView 的基本用法的文章就介紹到這了,更多相關(guān)Android 中 WebView 用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 為什么不要在?Flutter?中使用全局變量

    為什么不要在?Flutter?中使用全局變量

    這篇文章主要介紹了為什么不要在Flutter中使用全局變量,全局變量是公共變量,可以被Flutter程序中的每個(gè)方法和對(duì)象訪問,全局變量是局部變量的替代品,它們?cè)诜椒ㄖ袆?chuàng)建并在該方法中訪問
    2022-08-08
  • Android實(shí)現(xiàn)為圖片添加水印

    Android實(shí)現(xiàn)為圖片添加水印

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)為圖片添加水印的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android項(xiàng)目實(shí)戰(zhàn)之仿網(wǎng)易頂部導(dǎo)航欄效果

    Android項(xiàng)目實(shí)戰(zhàn)之仿網(wǎng)易頂部導(dǎo)航欄效果

    這篇文章主要為大家詳細(xì)介紹了Android項(xiàng)目實(shí)戰(zhàn)之仿網(wǎng)易頂部導(dǎo)航欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android大圖監(jiān)測(cè)系統(tǒng)的三種實(shí)現(xiàn)方式

    Android大圖監(jiān)測(cè)系統(tǒng)的三種實(shí)現(xiàn)方式

    在Android應(yīng)用中,大圖的加載和顯示可能導(dǎo)致內(nèi)存占用過高,進(jìn)而引發(fā)OOM(Out Of Memory)異常,影響應(yīng)用的穩(wěn)定性和用戶體驗(yàn),為了更好地管理大圖資源,我們需要建立起一套可靠的大圖監(jiān)測(cè)系統(tǒng),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • Android實(shí)現(xiàn)果凍滑動(dòng)效果的控件

    Android實(shí)現(xiàn)果凍滑動(dòng)效果的控件

    這篇文章給大家主要介紹了利用Android如何實(shí)現(xiàn)果凍效果滑動(dòng)效果的控件,實(shí)現(xiàn)的效果類似于iOS有阻尼效果的滑動(dòng)控件,一般我們比較親切地稱之為果凍控件,常見的如微信里[我]的那個(gè)面板模塊,即使沒有再多的選項(xiàng),也不會(huì)很生硬的不允許用戶滑動(dòng)。下面來一起看看吧。
    2016-11-11
  • Android中實(shí)現(xiàn)詞組高亮TextView方法示例

    Android中實(shí)現(xiàn)詞組高亮TextView方法示例

    高亮顯示大家應(yīng)該都不陌生,在開發(fā)中經(jīng)常會(huì)遇到這個(gè)需求,所以下面這篇文章主要給大家介紹了關(guān)于Android中實(shí)現(xiàn)詞組高亮TextView的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • android使用SharedPreferences進(jìn)行數(shù)據(jù)存儲(chǔ)

    android使用SharedPreferences進(jìn)行數(shù)據(jù)存儲(chǔ)

    Android平臺(tái)給我們提供了一個(gè)SharedPreferences類,它是一個(gè)輕量級(jí)的存儲(chǔ)類,特別適合用于保存軟件配置參數(shù)。有興趣的可以了解一下。
    2017-02-02
  • Android高仿京東垂直循環(huán)滾動(dòng)新聞欄

    Android高仿京東垂直循環(huán)滾動(dòng)新聞欄

    通過自定義的LinearLayout,并且textView能夠循環(huán)垂直滾動(dòng),而且條目可以點(diǎn)擊,顯示區(qū)域最多顯示2個(gè)條目,并且還有交替的屬性垂直移動(dòng)的動(dòng)畫效果,通過線程來控制滾動(dòng)的實(shí)現(xiàn)
    2016-03-03
  • Android提高之XML解析與生成實(shí)例詳解

    Android提高之XML解析與生成實(shí)例詳解

    這篇文章主要介紹了Android的XML解析與生成方法,相信對(duì)大家的Android項(xiàng)目開發(fā)有一定的借鑒參考作用,需要的朋友可以參考下
    2014-08-08
  • 實(shí)例講解Android多線程應(yīng)用開發(fā)中Handler的使用

    實(shí)例講解Android多線程應(yīng)用開發(fā)中Handler的使用

    這篇文章主要介紹了Android多線程應(yīng)用開發(fā)中Handler的使用,Handle主要被用來更新UI和處理消息,需要的朋友可以參考下
    2016-01-01

最新評(píng)論