# 微信小程序转钉钉小程序
# 使用工具转换
由于平台差异,微信小程序不能在钉钉平台直接使用,选择 Antmove (opens new window) 转换
- 安装转换工具
- 开始转换(推荐使用 vscode 插件 Antmove)
- 抹平平台差异
- 前端某些 api 差异
- 后端通知服务 api 差异
npm install antmove -g
1
- 在需要转换项目下新建 antmove.config.js 文件
module.exports = {
input: './',
output: '..\\etms-dd',
env: 'production',
platform: 'dd',
component2: true,
scope: true,
type: 'wx-alipay',
component: false,
hooks: {
plugin: function plugin(appJson) {
return appJson;
}
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 平台差异
- 转换完成后,使用开发工具 (opens new window)打开程序,
- 看到调试器错误信息,根据提示和开发文档 (opens new window)来修改平台差异
# 全局变量
微信 | wx |
---|---|
钉钉 | dd |
# 动态设置导航栏颜色
微信 | setNavigationBarColor | |
---|---|---|
钉钉 | setNavigationBar (opens new window) | 没有hideTabBar接口 |
# 音频差异
微信 | stopRecord (opens new window) |
---|---|
钉钉 | getRecorderManager (opens new window) |
# 开放能力
微信小程序的button开放能力 (opens new window)明显要强于钉钉小程序开放能力 (opens new window)
微信端的授权或着获取用户信息在钉钉端需要改变交互或者实现方式
**
# 图表开发
选取 wx-charts (opens new window) 开源项目,文档参考 (opens new window)。
备选方案:uCharts (opens new window)
# request 请求
钉钉请求网络注意:
- 头部信息是 headers,不是微信小程序 header
- 新增头部信息时,参数都应该为字符串
# tabBar
- 微信小程序 TabBar 提供设置的 API (opens new window) 相对齐全
- 钉钉小程序 提供的 TabBar (opens new window) 修改则没那么丰富
- 尤其是需要**隐藏tabBar:**是否修改钉钉小程序交互,采用主页分块访问模块?
# 真机调试
真机预览时,需要在钉钉开发者平台 (opens new window)设置安全域名
# 平台发布
# 一些考虑
微信小程序是否有必要转换,由于两个平台造成的差异可能需要考虑的细节:
- 后期代码维护;由于差异带来的维护成本
- 两端交互的不同;带来的开发成本
- 发布平台的不同;审核时间带来发布时间的考虑
- 图表开发;平台方案的选取可能带来两端实现的差异化与时间的后延
总结:是否需要重新规划,使用多端统一开发方案:uni-app (opens new window)
多端开发考虑:
**
- 对比多端差异,是否需要综合考虑认证交互,减少一些开发维护成本
- 图表如果使用使用Echarts微信版本 (opens new window),在多端转换会出现**只支持微信小程序,**是否考虑多端统一使用 Antv F2 (opens new window) ?