c语言编程笔录

首页 >   > 笔记大全

笔记大全

怎么在uniapp中关闭webview

更新时间:2023-11-12

什么是Uniapp?

Uniapp是基于Vue.js框架开发的一个跨平台应用开发框架,支持同时开发多个平台的应用,包括iOS,Android,H5和小程序等。

什么是webview?

Webview是在App中嵌入一个WebView控件,使得原生应用可以加载Web应用。Webview可以加载本地HTML文件或远程URL地址,在App中使用Web技术的同时,依然可以调用本地的API。

如何关闭webview?

在Uniapp中,关闭Webview可以使用uni.navigateBack方法进行实现。该方法相当于返回到上一个页面,可以通过设置delta参数来返回多级页面。

    // 关闭当前页面
    uni.navigateBack({
        delta: 1
    });

如果希望在某些特定情况下关闭Webview,可以使用uni.showModal方法弹出一个对话框,用户确认关闭之后再执行uni.navigateBack方法。

    uni.showModal({
        title: "提示",
        content: "确定要关闭页面吗?",
        success: function (res) {
            if (res.confirm) {
                uni.navigateBack({
                    delta: 1
                });
            }
        }
    });

如何禁止Webview中的返回按钮?

在Webview中,默认情况下有一个返回按钮,可以让用户返回上一个页面。如果希望禁止该按钮,可以通过在页面中添加以下代码来实现:

    // 禁止返回按钮的click事件
    window.__wxjs_is_wkwebview || window.history.pushState(null, null, location.href);
    window.addEventListener('popstate', function () {
        window.__wxjs_is_wkwebview || window.history.pushState(null, null, location.href);
    });

以上代码可以针对iOS系统进行适配,如果需要适配Android系统,可以通过添加以下代码来实现:

    // 禁止返回按钮的click事件
    mWebView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {
                mWebView.goBack();
                return true;
            }
            return false;
        }
    });