【简单讲解下WebView的使用与后退键处理】

在这里插入图片描述

🌈个人主页: 程序员不想敲代码啊
🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家
👍点赞⭐评论⭐收藏
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

在这里插入图片描述

🤗前言

💫WebView是Android提供的一个内置浏览器控件,它允许应用在其内显示网页内容或执行JavaScript脚本,由于WebView基于Chromium项目,因此它通常拥有和Google Chrome浏览器相似的渲染引擎和性能。

🤗WebView的使用

  1. ✨权限:在使用WebView之前,你需要在AndroidManifest.xml文件中添加网络权限:

    <uses-permission android:name="android.permission.INTERNET" />
    
  2. ✨布局文件中的WebView:你需要在布局文件中加入WebView组件:

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    
  3. ✨代码中初始化WebView:在Activity或Fragment的onCreate方法中通过ID获得WebView实例,并通过loadUrl加载一个网页:

    WebView myWebView = (WebView) findViewById(R.id.webview);
    myWebView.loadUrl("http://www.example.com");
    
  4. ✨WebViewClient和WebChromeClient

    • 💅WebViewClient:可以处理各种通知和请求事件,如页面加载开始和结束。
    • 💅WebChromeClient:可以处理JavaScript对话框、图标、标题和加载进度。
    myWebView.setWebViewClient(new WebViewClient());
    myWebView.setWebChromeClient(new WebChromeClient());
    
  5. ✨启用JavaScript:很多网页需要JavaScript支持,可以在WebView的设置中启用:

    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    
  6. ✨处理特定链接的点击:你可以拦截并处理点击链接的逻辑:

    myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            // 在这里处理点击链接后的逻辑
            return false; // 返回false意味着WebView会处理链接,如果返回true则不处理
        }
    });
    

🤗WebView中的后退键处理

💫要处理Android设备的后退键以便用户可以后退到之前的网页,你需要重写Activity的onBackPressed方法:

@Override
public void onBackPressed() {
    if (myWebView != null && myWebView.canGoBack()) {
        myWebView.goBack(); // 如果WebView可以后退,则后退WebView
    } else {
        super.onBackPressed(); // 如果WebView不能后退,则执行默认的后退键逻辑
    }
}

💫这样,当用户按下后退键时,如果WebView可以后退到上一个页面,就会执行后退操作;如果不能后退,就会执行Activity的默认后退行为,比如结束当前Activity。

💫请根据你实际的开发环境和需求,对这些示例代码进行相应的调整。

相关推荐

  1. WebView使用后退处理

    2024-04-07 19:44:03       37 阅读
  2. Android WebView使用后退处理

    2024-04-07 19:44:03       44 阅读
  3. WebView使用后退处理

    2024-04-07 19:44:03       43 阅读
  4. WebView 后退处理技巧:如何处理网页历史记录

    2024-04-07 19:44:03       32 阅读
  5. 教你如何在 WebView 中实现优雅后退处理

    2024-04-07 19:44:03       30 阅读
  6. 双击返回,轻松处理 WebView后退事件

    2024-04-07 19:44:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 19:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 19:44:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 19:44:03       82 阅读
  4. Python语言-面向对象

    2024-04-07 19:44:03       91 阅读

热门阅读

  1. zynq gst-launch-1.0相关

    2024-04-07 19:44:03       31 阅读
  2. 顺序表应用——通讯录实现

    2024-04-07 19:44:03       33 阅读
  3. 《解释器模式(极简c++)》

    2024-04-07 19:44:03       40 阅读
  4. 【Linux】常用压缩命令(八)

    2024-04-07 19:44:03       32 阅读
  5. Swagger使用配置笔记

    2024-04-07 19:44:03       40 阅读
  6. 蓝桥杯刷题 前缀和与差分-[2128]重新排序(C++)

    2024-04-07 19:44:03       36 阅读
  7. 移动端h5 js手势封装

    2024-04-07 19:44:03       41 阅读
  8. C# 索引器的范例和要点

    2024-04-07 19:44:03       47 阅读
  9. leetcode热题100.数组中的第k大的元素

    2024-04-07 19:44:03       38 阅读
  10. [leetcode] 66. 加一

    2024-04-07 19:44:03       34 阅读