美文网首页钉钉微应用
2019-01-24移动端调试,钉钉开发踩坑

2019-01-24移动端调试,钉钉开发踩坑

作者: 追风筝的Hassan | 来源:发表于2019-01-26 10:27 被阅读0次

1.this的指向问题导致页面无法跳转

 onInsert () {
      let self = this
      dd.biz.navigation.setRight({
        show: true, // 控制按钮显示, true 显示, false 隐藏, 默认true
        control: true, // 是否控制点击事件,true 控制,false 不控制, 默认false
        text: '添加', // 控制显示文本,空字符串表示显示默认文本
        onSuccess () {
          self.$router.push({ path: '/work/addBusiness' })
        },
        onFail (error) {
          console.log(JSON.stringify(error))
        }
      })
    },

2.清除时间问题导致,组件不显示问题

// 把时间改为100后,跳转组件页面不显示
 created () {
    let clearTime = setTimeout(() => {
      clearTimeout(clearTime)
      this.matchedTag()
    }, 500)
  },

3.页面缓存问题

可以使用keepAlive进行控制页面是否缓存

<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>

然后在路由中设置路由元keepAlive的true,false来控制页面缓存,这种情况下,实现浏览器返回不刷新页面
一篇参考文章https://www.cnblogs.com/leejay6567/p/9096187.html

4.钉钉调用地图接口使用

调用其内部的接口需要获取userId获取权限

 async getAuthInfo () {
      let params = {
        requestUrl: 'http://crm-dev.jiuyescm.com:18000/'
      }
      let config = await Base.getAuthInfo(params)
      dd.config = {
        agentId: config.agentId, // 必填,微应用ID
        corpId: config.corpId, // 必填,企业ID
        timeStamp: config.timeStamp, // 必填,生成签名的时间戳
        nonceStr: config.nonceStr, // 必填,生成签名的随机串
        signature: config.signature, // 必填,签名
        jsApiList: [
          'runtime.permission.requestAuthCode',
          'biz.navigation.setTitle',
          'biz.navigation.setRight',
          'biz.util.datepicker',
          'biz.navigation.close',
          'biz.util.chosen',
          'biz.util.scanCard',
          'device.geolocation.get'
        ] // 必填,需要使用的jsapi列表
      }
      let code = await this.getCode(config.corpId)
      let userid = await this.getUserId(code)
      if (userid) this.$router.push('/dashboard')
      else this.$toast.fail('获取个人信息失败!')
    },
    // 获取code
    async getCode (corpId) {
      let resData = await Base.getCode()
      if (resData.code * 1 === Code.SUCCESS) {
        dd.runtime.permission.requestAuthCode({
          corpId: corpId,
          onSuccess: result => {
            this.getUserId(result.code)
          },
          onFail (err) {
            this.$toast.fail(JSON.stringify(err))
          }
        })
      } else {
        this.$toast.fail(resData.message)
      }
    },
    // 获取userId
    async getUserId (code) {
      let resData = await Base.getUserId({}, code)
      if (resData.code * 1 === Code.SUCCESS) {
        this.$router.push('/dashboard')
      } else {
        this.$toast.fail(resData.message)
      }
    }
  },
  computed: {}
}

未获取权限时会出现的错误
{'errCode': '7', 'jsapi': 'jsapi should be invoked after dd.ready callbacks'}

相关文章

  • 2019-01-24移动端调试,钉钉开发踩坑

    1.this的指向问题导致页面无法跳转 2.清除时间问题导致,组件不显示问题 3.页面缓存问题可以使用keepAl...

  • h5仿钉钉实战项目|仿钉钉办公聊天界面

    html5仿钉钉移动智慧办公|仿钉钉聊天界面|移动端办公webapp 这几天一直在开发h5仿钉钉项目,使用到了ht...

  • 钉钉ISV JSAPI开发总结

    近期开发了钉钉版微应用,将自己踩过的坑总结如下 : 坑1.dd.biz.navigation.setLeft iO...

  • 钉钉H5微应用开发常见问题

    一、怎么在钉钉的IM聊天页面打开微应用? PC端: 手机端: <由于现在不怎么做钉钉开发了就一直没更新,对钉钉开发...

  • 借助钉钉开发手机端调试

    1.下载钉钉开发版 2.手机点开设置->开发者模式->打开USB调试 3.打开钉钉开发版我的->设置->通用->开...

  • 钉钉微应用H5开发调试工具

    1.下载钉钉开发版 2.手机点开设置->开发者模式->打开USB调试 (必须) 3.打开钉钉开发版我的->设置->...

  • 移动端开发相关

    超齐全的移动端开发的坑 参考 进行开发调试的时候可以安装browser-sync 移动端分类 Native 原...

  • 钉钉开放平台 AccessToken 改动

    踩坑记录2019年1月7日,铭记历史,总结反思,祝有缘人,在开发的路上一帆风顺。 错误:钉钉 没有调用该接口的权...

  • 钉钉微应用踩坑记录

    一、要解决的问题: 钉钉微应用开发,应对未来可能的PC端使用场景:PC访问网页,工作台登陆后,通过钉钉服务端接口...

  • 钉钉小程序踩坑总结

    最近用uniapp写了一个钉钉小程序项目,由于刚兼容钉钉小程序不久,安卓和ios体验上差距还是蛮大的,包括本地测试...

网友评论

    本文标题:2019-01-24移动端调试,钉钉开发踩坑

    本文链接:https://www.haomeiwen.com/subject/faayjqtx.html