0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 小程序

开发飞书小程序积累下的经验与流程

发表时间:2023-10-17 18:10:34

文章来源:炫佑科技

浏览次数:184

菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技

开发飞书小程序积累下的经验与流程

*近,由于工作需要,首先在微信小程序开发平台上开发一套程序。 但由于微信小程序无法保证整个数据流在内网封闭,所以我决定改用飞书小程序,并集成到飞书小程序中。 所有功能已迁移至飞书小程序。 但飞书小程序上的开源博客相对较少,所以一开始上手还是比较痛苦的。 现在小程序整体开发已接近尾声,我想总结一下飞书小程序近期开发中积累的经验和过程。

开放文档和平台

飞书小程序提供了很多原生API和服务器支持功能,可以极大丰富小程序的能力。 因此,多参考文档对于程序的设计和开发会有很大的帮助(主要是飞书的小程序开源社区还不是很丰富,很多功能也没有博客讲解如何使用)

飞书小程序开发文档:

飞书开发工具:

微信小程序vs 飞书小程序

微信小程序的语法格式在很多场景下与飞书小程序是一致的。 如果遇到语法不确定的情况,可以直接参考微信小程序的语法。 如果这不起作用,请转到飞书开发文档。

微信小程序一键迁移

打开飞书开发工具,可以看到右上角有一个迁移工具按钮。 点击迁移工具,直接将微信小程序迁移到飞书小程序。 该工具可以自动将大部分微信小程序语法替换为飞书。 小程序语法,但不保证转换结果绝对正确。 可能仍然存在一些不正确的语法。 这个时候我们还是需要自己去调试程序,保证程序的可用性。

有关如何使用移动工具的更详细说明,请参阅:

移动工具介绍文档

使用移动工具的副作用

使用搬家工具后,并不意味着可以立即进入开发调试阶段。 这时,我们还需要面对另一个问题——微信小程序和飞书小程序在技术支持上的差异。

首先我们需要注意修改..json文件中的appid。 当我们迁移程序后,appid不会直接为我们改变。

//在开发后台创建应用后可以看到appid:开发后台链接

以后如果我们在微信小程序中使用了云函数和云数据库,可能会遇到麻烦,因为飞书小程序比较轻量级开发飞书小程序积累下的经验与流程,不支持云函数和云数据库。 这时候我们就可以寻找另一种数据存储的解决方案——多维表。 关于多维表的使用,下面我会介绍一下。

页面展示和页面陷阱

一页一页的构成了小程序的基本结构。 如果您想配置打开小程序默认界面,有两种选择:

在app.json中添加一个字段,该字段值对应的页面将被配置为入口页面。

"": "pages/index/index" 如果app.json中没有配置该字段,则默认为页面列表中的**项。

{
  "pages":[
    "pages/index/index"
  ]
}

一般来说,配置好页面中的内容后,就可以满足小程序

更多app.json全局配置选项参考文档

在pages文件夹中,一般我们会存放各个页面的文件夹

结构一般如下

├── 页数

│ │── 首页

│ │ ├── home.ttml

│ │ ├── home.js

│ │ ├── home.json

│ │ └── home.ttss

│ └── 用户

│ ├── 用户.ttml

│ └── user.js

值得一提的是,在所有的js文件中,无论是否使用数据对象,我们都需要声明数据对象,否则总会打印错误。

Page({
	data:{
	},
});

另外,所有的json文件也需要初始化。 即使没有数据,也需要写一对正负大括号。

获取用户信息

与微信小程序不同的是,飞书小程序获取用户信息时,还需要先调用login方法,然后再调用。

getUserProfile() {
	// 用户登录
    tt.login({
    // 成功回调
      success(res) {
        console.log(JSON.stringify(res));
        // 获取用户信息
        tt.getUserInfo({
          // 要求敏感信息
          withCredentials: true,
          success: function(res) {
            console.log(JSON.stringify(res));
            tt.setStorageSync('user', res);
            app.globalData.userName = res.userInfo.nickName;
          },
          fail: function(res) {
            console.log(`getUserInfo fail: ${JSON.stringify(res)}`);
          }
        });
      },
      fail(res) {
         console.log(`login fail: ${JSON.stringify(res)}`);
      }
    })
  },

更多登录信息请参考tt.login

欲了解更多信息,请参阅tt。

关于跳转页面堆栈的问题

当我们的小程序在不同页面之间跳转时,我们可能更习惯使用这种方法,但是每次使用该方法时,都会将当前页面压入堆栈,然后进行跳转操作。 每次向左滑动屏幕边缘返回某个页面时,该页面都会从页面堆栈中弹出。

例如,我们有两个页面:pageA 和 pageB。 我们在 pageA.js 文件中调用它们。

tt.navigateTo({url: '../pageB/pageB'});

微信小程序开发书_微信小程序开发书_微信小程序开发书

这时,程序会先将pageA压入栈(stack),然后从pageA跳转到pageB; 注意,如果这里说的是页面必须成功入栈,才会执行跳转。 操作,如果页面推送失败,则不会进行后续的跳转操作。 如果此时用户在B页面向左滑动屏幕,就会弹出栈顶的A页面,并跳转到A页面。

不过值得注意的是,页栈的*大值为10,当页栈的大小达到10时,再次调用该操作将不再起作用,页栈不会发生变化,页面也不会跳转。

所以我们可以将它与以下内容结合使用:

tt.navigateTo({
    "url": "../shotPhoto/shotPhoto",
    success(res) {
      console.log(JSON.stringify(res));
    },
    // 失败回调
    fail(res) {
      console.log(`navigateTo fail: ${JSON.stringify(res)}`);
      tt.redirectTo({
        "url": "../shotPhoto/shotPhoto",
        success(res) {
          console.log(JSON.stringify(res));
        },
        fail(res) {
          console.log(`rediractTo fail: ${JSON.stringify(res)}`);
        }
      })
    }
  });

不过需要注意的一点是,只能跳转到非界面。 如果想跳转到某个界面,请使用该方法。

欲了解更多信息,请参阅

欲了解更多信息,请参阅

欲了解更多信息,请参阅

取得认证

在飞书小程序的开发中,有时我们在使用飞书服务器的某些功能时,可能会需要进行身份验证。 这时我们就可以通过小程序调用post请求来获取相关数据。

值得注意的是,认证信息2小时后过期,过期后可以重新申请。

tt.request({
        url: 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal',
        method: "post",
        data: {
          app_id: "appid",
          app_secret: "secret"
        },
        header: {
          'Content-Type': "application/json; charset=utf-8"
        },
        success: function(res) {
          console.log("try to get accessToken success:" + res);
          accessToken = res;
          tt.setStorageSync("accessToken", res);
          tt.setStorageSync("accessTime", new Date().getTime());
        },
        fail: function(res) {
          console.log("try to get accessToken failed:" + res);
        }
      })

多维表? 简单的数据库配置!

多维表文档多维表

多维表可以看作是简化的关系型数据库,在飞书小程序不支持数据库的情况下可以作为数据库的替代品。

在对多维表添加操作时,我们需要先自己创建一个多维表,并获取它的and,

例如我们的多维表的URL是

? 表=&视图=

此时,是微信小程序开发书,是。

同时,我们还需要获得认证。 获得认证的方法如上所述。

这里我们只显示新数据:

tt.request({
      url:'https://open.feishu.cn/open-apis/bitable/v1/apps/apptokenapptoken/tables/tableidtableid/records',
      method: "post",
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + accessTokenString
      },
      data: {
        'fields': {
        	"人力耗时": 64,
       		"人力评估": "8",
        }
      },
      success: function(res) {
        console.log("上传数据成功"+ res);
      },
      fail: function(res) {
        console.log("上传数据失败" + res);
      }
    })

持续更新。 。 。

我是个新手,在网上被人殴打。 如果有任何错误,请指正。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多