z***@163.com
z***@163.com
  • 发布:2024-12-27 14:44
  • 更新:2024-12-27 14:46
  • 阅读:100

【报Bug】uniapp使用web-view嵌套H5页面左滑后 ,在android下可以正常返回上一页,在鸿蒙直接 退出应用问题

分类:鸿蒙Next

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: W10

HBuilderX类型: Alpha

HBuilderX版本号: 4.43

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS NEXT Developer Beta1

手机厂商: 华为

手机机型: 华为

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

uniapp使用web-view嵌套H5页面,左滑

预期结果:

返回上一页

实际结果:

退出当前应用

bug描述:

···
<template>
<view>
<web-view :src="src"></web-view>
</view>
</template>
<script>
var wv; //计划创建的webview
export default {
data() {
return {
src: "https://hm.hntxrj.com/",
canBack: false,
};
},
onBackPress() {
if (wv && this.canBack) {
wv.back();
return true;
}
return false;
},
onReady() {

        var self = this;  
        var currentWebview = this.$scope  
            .$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()  
        setTimeout(function() {  
            wv = currentWebview.children()[0];  
            wv.addEventListener(  
                "progressChanged",  
                function(e) {  
                    wv.canBack(function(e) {  
                        self.canBack = e.canBack;  
                    });  
                },  
                false  
            );  
        }, 500); //如果是页面初始化调用时,需要延时一下  

    },  
};  

</script>
···
uniapp使用web-view嵌套H5页面返回上一页问题。在android上可以正常返回,在鸿蒙中直接退出应用

2024-12-27 14:44 负责人:无 分享
已邀请:
z***@163.com

z***@163.com (作者) - 翟梦丽

<template>  
    <view>  
        <web-view :src="src"></web-view>  
    </view>  
</template>  
<script>  
    var wv; //计划创建的webview  
    export default {  
        data() {  
            return {  
                src: "https://hm.hntxrj.com/",  
                canBack: false,  
            };  
        },  
        onBackPress() {  
            if (wv && this.canBack) {  
                wv.back();  
                return true;  
            }  
            return false;  
        },  
        onReady() {  

            var self = this;  
            var currentWebview = this.$scope  
                .$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()  
            setTimeout(function() {  
                wv = currentWebview.children()[0];  
                wv.addEventListener(  
                    "progressChanged",  
                    function(e) {  
                        wv.canBack(function(e) {  
                            self.canBack = e.canBack;  
                        });  
                    },  
                    false  
                );  
            }, 500); //如果是页面初始化调用时,需要延时一下  

        },  
    };  
</script>

要回复问题请先登录注册