这一定是一个神奇的缘分,leader让我将钉钉小程序的功能搬到微信小程序上,由于对微信小程序和钉钉小程序两边api都不太熟悉,因此还是遇到了一些问题,同时也借助双方官方文档进行调试,下面将记录一下,微信/钉钉小程序的不同语法进行总结
| 说明 | 微信小程序 | 钉钉小程序 |
|---|---|---|
| 页面结构文件名 | .wxml | .axml |
| 样式文件名 | .wxss | .acss |
| 点击事件绑定 | bindtap | onTap |
| 失去焦点 | bindblur | onBlur |
| 本地缓存 | wx.getStorageSync('score') | dd.getStorageSync({key:'score'}).data |
| toast提示 | wx.showToast({title: '请填写名称',icon:'none'}),如果不设置icon:none,会默认显示成功的图标 | dd.showToast({content: '请填写名称'}) |
| 时间选择器 | 微信里没有此方法,可以通过picker-view组件实现 | dd.datePicker |
| 模板语法 | wx: | a: |
| 网络请求header参数 | wx.request中为header | dd.request中为headers |
| 事件对象 | 微信会转成小写字母e.target.dataset.recordid | e.target.dataset.recordId |
| 子组件需要调用父组件的某个方法 | 目前只能通过父组件事件监听,子组件通过triggerEvent触发父组件自身的方法 | 父组件可以将函数作为属性传递给子组件,子组件通过props接收 |
| 图片/文件上传 | wx.chooseImage成功回调中,图片的本地临时文件路径列表属性名为tempFilePath | dd.chooseImage成功回调中,图片的本地临时文件路径列表属性名为filePaths |
| 上传文件uploadFile | wx.uploadFile 参数对象中,name属性必传,作为文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容 | dd.uploadFile 参数对象中,name属性非必传| |
| 登录 | wx.login调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。 wx.login({success:(res)=>{const code:res.code, }}) | 调用my.getAuthCode获取授权码,他的dd.getAuthCode({success: (res) => {const code= res.authCode}) |
| 滚动选择器组件 picker-view | 初始加载时不能通过value值设置默认选中位置,感觉是微信的bug | 初始加载时能通过value值设置默认选中位置 |
| 自定义组件 | Component定义属性用properties | Component定义属性用props |
| corpId | 无wx.corpId | dd.corpId |
| 路径 | 微信在wxml和js中只能引用相对路径,层级需要手动修改下 | 绝对路径 |
| 调用电话api | wx.makePhoneCall() | dd.showCallMenu({}) |
| 获取节点 | const query = wx.createSelectorQuery(); query.select('#detailchatBox').boundingClientRect(); | dd.createSelectorQuery().select('#pageTotal').boundingClientRect() |
| 设置系统剪贴板的内容 | wx.setClipboardData({data: "111"}); | dd.setClipboard({text: "111"}); |
这里前面有参考前辈 blog.csdn.net/ljc_5638127… 后面都是自己遇到过 真实经历bug录入