最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)頁(yè)的前進(jìn)后退

// 網(wǎng)頁(yè)是否可以后退
webview.canGoBack();
// 網(wǎng)頁(yè)進(jìn)行后退
webview.goBack();
// 網(wǎng)頁(yè)是否可以前進(jìn)
webview.canGoForward();
// 網(wǎng)頁(yè)進(jìn)行前進(jìn)
webview.goForward();
// 網(wǎng)頁(yè)是否可以前進(jìn)/后退 steps 步
webview.canGoBackOrForward(int steps);
// 網(wǎng)頁(yè)進(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)頁(yè)

建立一個(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)頁(yè)上的頁(yè)面

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)頁(yè) 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)文章

  • Android 開發(fā)隨手筆記之使用攝像頭拍照

    Android 開發(fā)隨手筆記之使用攝像頭拍照

    在Android中,使用攝像頭拍照一般有兩種方法, 一種是調(diào)用系統(tǒng)自帶的Camera,另一種是自己寫一個(gè)攝像的界面,本篇文章給大家介紹android開發(fā)隨手筆記之使用攝像頭拍照,感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • Kotlin?launch原理全面分析

    Kotlin?launch原理全面分析

    在Android開發(fā)中,launch是我們經(jīng)常用的,今天來看看它是什么原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • 詳解Android Gradle插件3.0挖坑日記

    詳解Android Gradle插件3.0挖坑日記

    這篇文章主要介紹了詳解Android Gradle插件3.0挖坑日記,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • 基于Android6.0實(shí)現(xiàn)彈出Window提示框

    基于Android6.0實(shí)現(xiàn)彈出Window提示框

    這篇文章主要為大家詳細(xì)介紹了基于Android6.0實(shí)現(xiàn)彈出Window提示框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Android實(shí)現(xiàn)信息彈出框

    Android實(shí)現(xiàn)信息彈出框

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)信息彈出框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Android中ScrollView嵌套GridView的解決辦法

    Android中ScrollView嵌套GridView的解決辦法

    前些日子在開發(fā)中用到了需要ScrollView嵌套GridView的情況,由于這兩款控件都自帶滾動(dòng)條,當(dāng)他們碰到一起的時(shí)候便會(huì)出問題,即GridView會(huì)顯示不全。下面小編給大家分享下解決方案,需要的朋友可以參考下
    2017-04-04
  • Android Handler內(nèi)存泄漏原因及解決方案

    Android Handler內(nèi)存泄漏原因及解決方案

    這篇文章主要介紹了Android Handler內(nèi)存泄漏原因及解決方案,幫助大家更好的理解和利用Android進(jìn)行開發(fā),感興趣的朋友可以了解下
    2021-02-02
  • Android自定義view實(shí)現(xiàn)側(cè)滑欄詳解

    Android自定義view實(shí)現(xiàn)側(cè)滑欄詳解

    之前一直沒有寫側(cè)滑菜單的實(shí)現(xiàn)方法,今天計(jì)劃補(bǔ)上。手機(jī)開發(fā)中,往往存在很多功能沒處放的問題。我們可能會(huì)把功能放入一個(gè)菜單列表,但現(xiàn)在一種流行的做法是側(cè)滑菜單
    2022-11-11
  • Android實(shí)現(xiàn)垂直進(jìn)度條VerticalSeekBar

    Android實(shí)現(xiàn)垂直進(jìn)度條VerticalSeekBar

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)垂直進(jìn)度條VerticalSeekBar的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android使用post方式上傳圖片到服務(wù)器的方法

    Android使用post方式上傳圖片到服務(wù)器的方法

    這篇文章主要介紹了Android使用post方式上傳圖片到服務(wù)器的方法,結(jié)合實(shí)例形式分析了Android文件傳輸?shù)南嚓P(guān)技巧,需要的朋友可以參考下
    2016-03-03

最新評(píng)論

神木县| 青阳县| 望江县| 呼图壁县| 正定县| 万年县| 东兰县| 英吉沙县| 尼玛县| 汤原县| 榆社县| 清远市| 镇江市| 潮州市| 沈阳市| 铜川市| 揭西县| 会昌县| 连江县| 尼木县| 安岳县| 壶关县| 宁强县| 牡丹江市| 乌拉特前旗| 稷山县| 长沙县| 阿鲁科尔沁旗| 阜阳市| 延川县| 北宁市| 清远市| 宁波市| 东光县| 南安市| 荔波县| 高尔夫| 五河县| 达州市| 景泰县| 黎川县|