uni-app钉钉小程序兼容性总结

uni-app钉钉小程序兼容性总结

本总结基于最开始使用 uni-app 开发的微信小程序,后续又需要开发钉钉小程序。

首先钉钉小程序需要自定义条件编译平台,在 package.json 文件中增加 uni-app 扩展节点,如下:

{
  ...
  "uni-app": {
    "scripts": {
      "mp-dingtalk": { 
        "title":"钉钉小程序", 
        "env": { 
          "UNI_PLATFORM": "mp-alipay" 
        },
        "define": { 
          "MP-DINGTALK": true 
        }
      }
    }
  }
  ...
}

添加扩展节点之后,在 Hbuilder X 的操作栏运行和发行下可以找到 钉钉小程序 。

showModal

钉钉小程序 不支持设置按钮颜色,且必须设置 confirmTextcancelText ,否则按钮文字为英文,而且必须设置 title

uni.showModal

uni.showModal({
  title: '提示',
  content: '获取设置失败,将重启小程序',
  showCancel: false,
  // #ifndef MP-DINGTALK
  confirmColor: theme.showModalConfirmColor,
  // #endif
  confirmText: '确定',
  cancelText: '取消',
  success: function (res) {}
})

组件样式

组件上不要使用 class 增加样式,在组件外包一层设置样式。

<view class="custom-components-box">
  <custom-components></custom-components>
</view>

下拉刷新

为防止某些页面莫名其妙可以下拉刷新,在 pages.jsonglobalStyle 设置 "enablePullDownRefresh": false ,在对需要下来刷新的页面单独设置 "enablePullDownRefresh": true

页面背景色

微信小程序页面背景色默认为白色,钉钉小程序默认为灰色。

图片上传

钉钉小程序上传图片必须传 fileType 参数。

uni.uploadFile(OBJECT)

this.$upload({
  url: '',
  filePath: '',
  name: '',
  // #ifdef MP-DINGTALK
  fileType: "image",
  // #endif
  formData: {
    ...
  }
})

chooseImage

uni.chooseImage(OBJECT)

chooseImage 返回的数据不一致,需要做兼容性处理

uni.chooseImage({
  count:1,
  sourceType: res.tapIndex === 0 ? ['camera']: ['album'],
  success: (res2) => {
    console.log(res)
    // #ifndef MP-DINGTALK
    const file = res.tempFiles[0]
    // #endif
    // #ifdef MP-DINGTALK
    const file = res.filePaths[0]
    // #endif
  }
})

文件查看

关于文件查看,在钉钉里需要使用钉盘进行查看。

转存文件到钉盘:dd.saveFileToDingTalk

钉盘文件预览:dd.previewFileInDingTalk

// 钉钉采用钉盘处理文件
dd.saveFileToDingTalk({
  url: fileUrl,  // 文件在第三方服务器地址
  name: fileName,
  success: (res) => {
    console.log(res)
    if (res.data.length) {
      dd.confirm({
        title: '提示',
        content: '文件已保存到钉盘中,是否需要现在查看?',
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        success: (result) => {
          if (result.confirm) {
            dd.previewFileInDingTalk({
              spaceId: res.data[0].spaceId,
              fileId: res.data[0].fileId,
              fileName: fileName,
              fileType: fileType,
            })
          }
        },
      });
    }
  },
  fail: (err) =>{
    console.log(err)
    dd.alert({
      content:JSON.stringify(err)
    })
  }
})

时间选择器

钉钉小程序的 picker 尽量不要用做时间选择,要用 dd.datePicker 实现。

拨打电话

// #ifndef MP-DINGTALK
uni.makePhoneCall({
  phoneNumber: self.serviceMobile
})
// #endif
// #ifdef MP-DINGTALK
dd.showCallMenu({
  phoneNumber: self.serviceMobile, // 期望拨打的电话号码
  code: '+86', // 国家代号,中国是+86
  showDingCall: false, // 是否显示钉钉电话
});
// #endif

showToast

uni.showToast(OBJECT)
dd.showToast

showToast 在模拟器中有时候显示不了,需要真机测试。

picker

picker 选择器内最好包裹一层 view

picker 单选

picker 单选需要使用 value 指定选择了 range 中的第几个(下标从 0 开始)。

cover-view 不支持

钉钉小程序不支持 cover-view ,需要用 view 去做替代。

<!-- #ifndef MP-DINGTALK -->
<cover-view class="page-footer">
  <button type="default">提交</button>
</cover-view>
<!-- #endif -->
<!-- #ifdef MP-DINGTALK -->
<view class="page-footer page-footer-ding">
  <button type="default">提交</button>
</view>
<!-- #endif -->
.page-footer {
  width: 100%;
  position: fixed;
  bottom: 0rpx;
  z-index: 10;
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
  &.page-footer-ding {
    ...
  }
}
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 微信小程序是腾讯公司基于微信平台推出的一种轻量级应用形态,它无需用户下载安装即可在微信内直接使用。自2017年正式上线以来,小程序凭借其便捷性、易获取性和出色的用户体验迅速获得市场认可,并成为连接线上线下服务的重要桥梁。 小程序的核心特点包括: 零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用的流畅体验。 跨平台兼容:开发者一次开发,即可在多种终端设备上运行,免除了复杂的适配工作,大大提高了开发效率。 社交属性强:小程序可以无缝嵌入微信生态,支持分享至聊天窗口、朋友圈等社交场景,有利于用户间的传播和裂变增长。 丰富接口能力:提供丰富的API接口,可调用微信支付、位置服务、用户身份识别等多种功能,方便企业进行商业服务的集成与拓展。 目前,微信小程序已经覆盖了电商购物、生活服务、娱乐休闲、教育学习、工具助手等多个领域,为数以亿计的用户提供便捷的服务入口,也为众多商家和开发者提供了新的商业模式和创业机会。随着技术的不断升级和完善,小程序已成为现代移动互联网生态中不可或缺的一部分。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值