收藏
回答

wx.openLocation API调用后,点击左上角返回按钮为什么要点击两次才能到上一个页面?

 API:wx.openLocation

  微信版本号:8.0.40

  基础库版本号:2.33.0

  问题:从webview页面点击导航,跳转到小程序页面,在小程序页面中调用wx.openLocation打开地图后,再点击左上角返回,需要点击两次才能返回到上一个页面,怎么才能一次点击返回上一个页面呢?

onLoad() {

        wx.openLocation({

          latitude: 32.409696853318,

          longitude: 119.41627380336764,

          name: "测试",

        })

    }


最后一次编辑于  2023-08-07
回答关注问题邀请回答
收藏

2 个回答

  • like life
    like life
    2023-10-20

    打开地图相当于开了一个新页面,当前页面其实只是作为一个中转页。因此在调用api的success回调函数中直接返回上一级页面就可以了

    wx.openLocation({
          latitude,
          longitude,
          name: data.address,
          address: data.address,
          scale: 18,
          success:function() {
            // 打开完成回退到上一级
            wx.navigateBack()
          }
        })
    
    2023-10-20
    有用 1
    回复
  • 等闲识得东风面
    等闲识得东风面
    2023-08-07

    可以在data里面加个标识 第一次onHiden 记录一下 第二次onShow 直接判断就可以 直接break应该就可以实现了 不过很想知道为什么需要在新页面进来就跳转打开位置 直接在外面不可以调api吗?

    2023-08-07
    有用 1
    回复 7
    • aiyingya
      aiyingya
      2023-08-07
      webview页面要实现导航,就跳转到了原生页面调用wx.openLocation
      2023-08-07
      回复
    • aiyingya
      aiyingya
      2023-08-07
      我先的做法是 在回退的时候,第二次onshow里 根据一些条件判断,去调用了下 wx.navigateBack(-1),但是这样的视觉效果不是很好,就是眼睛会看到先返回到一个空白的页面然后在被返回到上一个页面的过程,想避免这样的改出来的效果。最好能直接返回上一页
      2023-08-07
      回复
    • 等闲识得东风面
      等闲识得东风面
      2023-08-08回复aiyingya
      webview 里面向外面发送消息 外面逻辑去掉openLocation也应该可以,而且这样只有一层呢,既然都跳转页面了 那为什么不直接调api呢
      2023-08-08
      回复
    • aiyingya
      aiyingya
      2023-08-08回复等闲识得东风面
      在webview里面调用的wx.miniProgram.navigateTo(小程序页面A),在小程序页面A里去调用的openLocation,你说直接掉api调哪个啊?是导航的api?
      2023-08-08
      回复
    • aiyingya
      aiyingya
      2023-08-08回复等闲识得东风面
      这个吗?
      2023-08-08
      回复
    查看更多(2)
登录 后发表内容