uni-app uni.openLocation 返回没有触发fail

uni-app uni.openLocation 返回没有触发fail

开发环境 版本号 项目创建方式
Windows 19041.804 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.1.2

手机系统:Android

手机系统版本号:Android 10

手机厂商:小米

手机机型:MIX 2S

页面类型:nvue

打包方式:云端

操作步骤:
在subNVue中调用uni.openLocation, 成功后,点击地图上的返回,没有在fail在回调

预期结果:
返回在fail又回调

实际结果:
返回没有在fail中回调

更多关于uni-app uni.openLocation 返回没有触发fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请提供可稳定复现直接运行的完整示例(上传附件),方便我们快速排查问题哦。 【正确报bug的姿势】https://ask.dcloud.net.cn/article/38139

更多关于uni-app uni.openLocation 返回没有触发fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中,uni.openLocation的fail回调仅在打开地图失败时触发,而用户点击返回按钮属于正常操作流程,不会触发fail回调。这是设计上的预期行为。

如果需要监听返回操作,可以考虑以下替代方案:

  1. 使用plus.maps.Map原生地图对象,它提供了更多事件监听能力:
var map = new plus.maps.Map("map");
map.addEventListener("close", function(){
    console.log("地图已关闭");
});
  1. 对于subNVue场景,可以通过自定义事件与父页面通信:
// subNVue中
uni.$emit('mapClosed', {});

// 父页面中
uni.$on('mapClosed', function(){
    console.log("地图已关闭");
});
  1. 如果是Android平台,还可以尝试监听返回键事件:
document.addEventListener('backbutton', function(){
    console.log("返回键被按下");
}, false);
回到顶部