钉钉小程序使用记录

2,963 阅读2分钟

1. setData 改变对应的this.data的值

  1. 注意:不要直接修改this.data对应的数据。
  2. 在dd.httpRequest({})中无法获取this对象,需要在请求外面定义变量去过渡钉钉变量
this.setData({
  'array[0]': 1,
  'obj.x':2,
});

2. dataset 在组件中可以定义数据,这些数据将会通过事件传递给逻辑层。

<view data-alpha-beta="1" data-alphaBeta="2" onTap="bindViewTap"> DataSet Test </view>

Page({
  bindViewTap:function(event){
    event.target.dataset.alphaBeta === 1 // - 会转为驼峰写法
    event.target.dataset.alphabeta === 2 // 大写会转为小写
  }
})

3. 在page中定义的分页面,页面元素不能使用.page类名,否则会与app的样式冲突。

4. 绘制F2图表,图表图例 legend不够显示,可以考虑添加css样式 padding 值。tooltip提示信息遮挡部分内容时,考虑 设置 offsetY

5. 钉钉中使用iconFont

第一种:引用iconfont第三方域名在线链接 进入iconFont官网,在 【Unicode】 选项中, 选择【查看在线链接】 选择相对应的icon图标,【取最后四位】使用

//1.css
@font-face {    
  font-family: 'iconfont'; /* project id 800366 */
  src: url('//at.alicdn.com/t/font_800366_tdlza9osbci.eot');
  src: url('//at.alicdn.com/t/font_800366_tdlza9osbci.eot?#iefix') format('embedded-opentype'),
         url('//at.alicdn.com/t/font_800366_tdlza9osbci.woff') format('woff'),
         url('//at.alicdn.com/t/font_800366_tdlza9osbci.ttf') format('truetype'),
         url('//at.alicdn.com/t/font_800366_tdlza9osbci.svg#iconfont') format('svg');
}
.iconfont {
  font-family: "iconfont" !important;
  font-size: 60rpx;
}
.icon-mediation-case:before {content: "\e6a0"}
//2.代码中引用
<view class="iconfont icon-backColor-case icon-mediation-case"></view>   

第二种:直接下载转化为base64使用

  1. 进入iconFont官网,在 【Unicode】 选项中, 选择【下载至本地】
  2. 在https://transfonter.org/,将下载文件中的【iconfont.ttf】文件转化为base64文件,下载后取出【stylesheet.css】复制到本地【app.acss】中进行复用。

6. 钉钉相关

  1. 官方组件文档:钉钉组件 F2图表
  2. 发布钉钉流程:
  1. 编辑器左上角选择 【关联应用】【体验组织】后,右上角 【上传】
  2. 发布体验版 钉钉开发平台 ,选择登录管理后台的企业和管理密码,选择【应用开发】,找到相应的版本将发布的版本设置为 体验版。
  3. 发正式版本都需要在编辑器左上角选择【企业内部应用】

7. 钉钉websocket

// 钉钉 websocket 
Page({
  data: {},
  onLoad() {
    dd.showLoading({ content: '数据加载中...' });
    dd.onSocketClose(function(res) {
      console.log('WebSocket 已关闭!')
    })

    let url = app.globalData.baseUrl_ws;
    dd.connectSocket({ url: url });
      
    dd.onSocketOpen(function(res) {
      // dd.alert({ content: '连接已打开!' });
    });

    dd.onSocketError(function(res) {
      // dd.alert('WebSocket 连接打开失败,请检查!' + res);
    });

    dd.onSocketMessage(function(res) {
      dd.hideLoading();
      let params = JSON.parse(res.data);
    })  
  }
})
// 原生webSocket
let url = app.globalData.baseUrl_ws;
let ws = new WebSocket(url);
ws.onopen = function () {
    console.log('连接成功');
}
ws.onmessage = function (event) {
    dd.hideLoading();
    let params = JSON.parse(event.data);
}