按后退按钮退出应用程序,而不是在 WebView 中向后导航

2023-11-23

我正在开发一个 WebView android 应用程序。我无法修复应用程序中的向后导航问题。我正在使用这段代码并尝试对此进行所有修改。

public class DeviceActivity extends Activity {
    private WebView web;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);

        web = (WebView) findViewById(R.id.webView);
        web.getSettings().setJavaScriptEnabled(true);
        web.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
        web.getSettings().setPluginsEnabled(false);
        web.getSettings().setSupportMultipleWindows(false);
        web.getSettings().setSupportZoom(false);
        web.setVerticalScrollBarEnabled(false);
        web.setHorizontalScrollBarEnabled(false);

        // Our application's main page will be loaded
        web.loadUrl("file:///android_asset/fbp/index.html");

        web.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }

            public void onBackPressed() {
                if (web.canGoBack()) {
                    web.goBack();
                } else {
                    // My exit alert code goes here.
                }
            }
        });
    }
}

这不会导航回来,而是退出应用程序。 任何帮助,将不胜感激。


将其添加到您的Activity代码(不在onCreate()或嵌套在其他地方)

@Override
public void onBackPressed() {
    if (web.copyBackForwardList().getCurrentIndex() > 0) {
        web.goBack();
    }
    else {
        // Your exit alert code, or alternatively line below to finish
        super.onBackPressed(); // finishes activity
    }
}

这将导航回来WebView历史堆栈直到其为空,然后执行默认操作(在本例中它完成活动)。

您可能还应该将 WebViewClient 设置为shouldOverrideUrlLoading return true否则您将不会加载任何链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按后退按钮退出应用程序,而不是在 WebView 中向后导航 的相关文章

随机推荐

  • 使用 XAML 显示滑块的值

    如何仅在单击时显示滑块的当前值 类似于工具提示 但不在鼠标悬停时 此代码为我提供了鼠标悬停时滑块的值 并显示为双值
  • 具有其他模型值的下拉菜单

    我有属于系列的产品 集合只是一个名字 产品有一个collection id 在我用于创建和编辑产品的 form 视图中 我希望有一个包含所有集合名称的下拉菜单 问题 似乎没有附属于 form for 的选择方法 我正在尝试使用 选择 方法
  • 在这种情况下,扩展原型链如何提高性能?

    我长期以来一直有一个深刻的假设prototype chains导致属性访问器的性能下降 我试图解释这一点隐藏 getter 或添加到 proto 对象中当一个快速我整理的基准结果与我的预期完全相反 这里发生了什么 我是否遗漏了一些明显的东西
  • Grails RemoteFunction 参数语法

    我正在尝试将几个参数传递给 grails 中的 RemoteFunction 但我很难正确格式化它 我想传递页面上的一段数据的值加上我刚刚跳出的文本框的值 所以在我的 onblur 中我有一些类似的内容 onblur remoteFunct
  • 蓝牙和delphi,怎么样?

    我想使用蓝牙将文件发送到设备 手机 没什么花哨的 但我不知道应该从哪里开始寻找司机 也许你们中的一个人以前使用过蓝牙 可以给我一个起点 我在 Indy 中添加了一些蓝牙支持 因为你只能 通过套接字读取 写入蓝牙 使用 Windows 套接字
  • MongoDB:更新一个字段上的每个文档

    我有一个集合名为foo假设地 每个实例foo有一个名为 lastLookedAt 的字段 它是自纪元以来的 UNIX 时间戳 我希望能够通过 MongoDB 客户端并将所有现有文档 大约 20 000 个 的时间戳设置为当前时间戳 处理这个
  • 访问 Django 模板中的 Javascript 变量

    有什么办法可以访问吗javascript变量在Django模板tags 我可以做这样的事情吗 if javascriptvar 0 do this else do this endif 不 Django 模板是在服务器端编译的 然后它被发送
  • 更改数据库/添加文件/变量文件名?

    我想将文件 文件组添加到现有数据库 但我需要从变量获取路径 因为当此脚本完成时它会有所不同 当我在 SQL Management Studio 2008 R2 中检查脚本时 它返回一个错误FILENAME Path 我该如何使用该变量 脚本
  • 如何判断 UILabel 何时被截断和/或其换行位置将发生变化

    我有一个多线UILabel numberOfLines 0 它的宽度可以在运行时改变 有时这会导致截断和 或重新包装 一些例子最好地说明了这一点 示例 1 宽度的减小导致不同的断线点 示例2 宽度减少导致截断 示例 3 宽度的减小导致截断和
  • 缺少节点的 xpath

    我有以下 xml
  • 如何根据方向元数据旋转 JPEG 图像?

    我有一些服务器代码在上传图像时生成缩略图 问题是 当拍摄图像并旋转相机 设备时 缩略图也会旋转 即使全尺寸图像本身在任何图像查看软件中都以正确的方向显示 只有 jpg 才会出现这种情况 使用 OSX 上的预览 我可以看到 jpg 中嵌入了方
  • 我可以将 Flex 组件属性绑定到函数吗?

    我想设置enabled按钮上的属性基于具有一个或多个参数的函数的返回值 我怎样才能做到这一点 private function isUserAllowed userName Boolean Boolean if userName Tom r
  • 使用 Graph API 将图像从 .NET 发布到 Facebook 墙

    我正在使用 Facebook 的 Javascript API 开发一个应用程序 该应用程序需要能够将图像发布到用户墙上 据我所知 应用程序的这一部分需要位于服务器端 因为它需要将图像数据发布为 多部分 表单数据 注意 这不是简单的 pos
  • java.lang.NoSuchMethodException:类“class java.lang.String”上的未知属性“”

    我想将对象列表传递给 jasper 报告中的列表组件 我正在使用 list1 的数据源表达式是新的net sf jasperreports engine data JRBeanCollectionDataSource参数类是java uti
  • Glassfish 服务器适配器未显示在 Eclipse 的列表中

    我成功安装了 Glassfish Tools for Kepler 但是 除了 Apache Basic JBoss 和 ObjectWeb 之外 我在服务器向导中没有看到 GlassFish 的条目 File gt New gt Othe
  • 如何在 NumPy 中将 CSV 数据读入记录数组?

    有没有直接的方法将CSV文件的内容导入到记录数组中 就像R的方式一样read table read delim and read csv 将数据导入 R 数据框 或者我应该使用csv reader 然后申请numpy core record
  • 二进制减法 - Python

    我想做一个二进制计算器 但减法部分有问题 这是我的代码 我尝试根据我在该网站上找到的代码进行改编 maxlen max len s1 len s2 s1 s1 zfill maxlen s2 s2 zfill maxlen result c
  • 在 Twitter Bootstrap CSS 中覆盖“背景:透明!重要”

    有一个可以绘图的应用程序divs 以背景颜色作为其图形 这些 div 在屏幕上看起来很好 但是div打印为 PDF 时 s 消失 将该问题追溯到 Twitter Bootstrap CSS 当 Bootstrap CSS 不存在时 div
  • doFilter 没有被调用

    你能帮忙检查一下为什么 doFilter 没有被调用吗 web xml
  • 按后退按钮退出应用程序,而不是在 WebView 中向后导航

    我正在开发一个 WebView android 应用程序 我无法修复应用程序中的向后导航问题 我正在使用这段代码并尝试对此进行所有修改 public class DeviceActivity extends Activity private