Android 中 WebView 的基本用法详解

家电修理 2023-07-16 19:17www.caominkang.com电器维修

加载 URL (网络或者本地 assets 文件夹下的 html 文件)
加载 html 代码
Native 和 Javascript 相互调用

加载网络 URL

ebvie.loadUrl(https://.baidu./);

加载 assets 下的 html 文件

ebvie.loadUrl(file:///android_asset/test.html);

加载 html 代码

// 两个代码差不多
// 偶尔出现乱码
ebvie.loadData();
// 比上面的好一些, 可以友好解决编码问题
ebvie.loadDataWithbaseURL();

网页的前进后退

// 网页是否可以后退
ebvie.canGoBack();
// 网页进行后退
ebvie.goBack();
// 网页是否可以前进
ebvie.canGoForard();
// 网页进行前进
ebvie.goForard();
// 网页是否可以前进/后退 steps 步
ebvie.canGoBackOrForard(int steps);
// 网页进行前进/后退 steps 步
ebvie.goBackOrForard(int steps);

执行 JS 代码.

ebvie.loadUrl("javascript:alert('Hello orld!')");
ebvie.evaluateJavascript("javascript:alert('Hello orld!')", null);

2. 加载网页

建立一个最简单的 html 文件

WebVieActivity

package .example.hello;

import androidx.apppat.app.AppCompatActivity;

import android.os.Bundle;
import android.ebkit.WebVie;

public class WebVieActivity extends AppCompatActivity {

 // 声明
 private WebVie b;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentVie(R.layout.activity_eb_vie);
  // 获取
  b = findVieById(R.id.b);
  // 加载本地 html 文件
  b.loadUrl("file:///android_asset/test.html");
 }
}

activity_eb_vie




 

加载网页上的页面

package .example.hello;

import androidx.apppat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.vie.KeyEvent;
import android.ebkit.WebChromeClient;
import android.ebkit.WebResourceRequest;
import android.ebkit.WebVie;
import android.ebkit.WebVieClient;

public class WebVieActivity extends AppCompatActivity {

 // 声明
 private WebVie b;

 @SuppressLint("SetJavascriptEnabled")
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentVie(R.layout.activity_eb_vie);
  // 获取
  b = findVieById(R.id.b);
  // 加载本地 html 文件
//  b.loadUrl("file:///android_asset/test.html");
  // 加载网页 html 文件
  // 支持 JS 和 DOM
  b.getSettings().setJavascriptEnabled(true);
  b.getSettings().setDomStorageEnabled(true);
  // 防止所有后打开默认浏览器
  b.setWebVieClient(ne MyWebVieClient());
  b.setWebChromeClient(ne MyWebChromeClient());
  b.loadUrl("https://.baidu./");
 }

 
 @Override
 public boolean onKeyDon(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && b.canGoBack()) {
   b.goBack();
   return true;
  }
  return super.onKeyDon(keyCode, event);
 }

 static class MyWebVieClient extends WebVieClient {
  @Override
  public boolean shouldOverrideUrlLoading(WebVie vie, WebResourceRequest request) {
   vie.loadUrl(request.getUrl().toString());
   return super.shouldOverrideUrlLoading(vie, request);
  }

  @Override
  public void onPageStarted(WebVie vie, String url, Bitmap favicon) {
   super.onPageStarted(vie, url, favicon);
   Log.d("WebVieClient", "Page started...");
  }

  @Override
  public void onPageFinished(WebVie vie, String url) {
   super.onPageFinished(vie, url);
   Log.d("WebVieClient", "Page Finished...");
  }
 }

 
 class MyWebChromeClient extends WebChromeClient {
  @Override
  public void onProgressChanged(WebVie vie, int neProgress) {
   super.onProgressChanged(vie, neProgress);
  }

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

到此这篇关于Android 中 WebVie 的基本用法的文章就介绍到这了,更多相关Android 中 WebVie 用法内容请搜索考高分网以前的文章或继续浏览下面的相关文章电脑维修网希望大家以后多多支持考高分网!

上一篇:java环境是什么 下一篇:phantomjs是什么

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by