最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • uni-app钉钉小程序兼容性总结

    正文概述 掘金(fxss)   2021-01-22   1133

    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 {
        ...
      }
    }
    

    起源地下载网 » uni-app钉钉小程序兼容性总结

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元