钉钉内应用-页面返回事件的回调监听

1此事件不支持在自定义首页使用。
2.iOS的返回事件请使用setLeft组件。

只能在一个.vue页面使用,如果其他页面要用的话需要配合vuex来使用。不能在多个页面调用,否则返回会失效。并且安卓和IOS调用方法不同。需要做判断。

调用方法

// An highlighted block
dd.ready(() => {
      const u = navigator.userAgent
      const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 // 判断是否是 android终端
      if (isAndroid) {
        document.addEventListener('backbutton', (e) => { //安卓调用方式
         e.preventDefault() //阻止返回
          //在这里处理你的业务
          if (this.$route.name === 'addPrizeAndBuckle') { //这个页面用了很多组件,并且类似于跳转到新的页面,直接点击返回的话就会回到首页,所以需要做判断
            e.preventDefault()
            if (this.app.isMenubuckleScreenPop > 0) { //判断是否在组件页面,不在的话直接返回,在的话点击返回需要关闭组件
              this.SET_IS_MENUBUCKLE_SCREEN_POP(-1)
            } else {
              Dialog.confirm({
                title: '提示',
                message: '您的奖扣还未提交,退出后所填写的信息将不做保存,是否确认退出?'
              }).then(() => {
                window.history.go(-1)
              }).catch(() => {
              })
            }
          } 
        })
      } else {
        dd.biz.navigation.setLeft({
          control: true,
          text: '',
          onSuccess: (result) => { //IOS调用方法 ios返回不起作用,需要手动让他返回window.history.go(-1)
           if (this.$route.name === 'addPrizeAndBuckle') {
              if (this.app.isMenubuckleScreenPop > 0) {
                this.SET_IS_MENUBUCKLE_SCREEN_POP(-1)
              } else {
                Dialog.confirm({
                  title: '提示',
                  message: '您的奖扣还未提交,退出后所填写的信息将不做保存,是否确认退出?'
                }).then(() => {
                  window.history.go(-1)
                }).catch(() => {
                })
              }
            } 
          },
          onFail(err) {
            console.log('返回失败', err)
          }
        })
      }
    })
Logo

前往低代码交流专区

更多推荐