uni-app使用微信小程序云函数的步骤示例


Posted in Javascript onMay 22, 2020

创建云函数目录

首先,我们需要在uni-app项目文件夹下,创建一个云函数目录,路径随意,我这里是functions。然后先随便在里面放一些文件,这里以new_file.css为例。(放文件的原因是:确保编译成小程序后cloudfunctions文件夹存在。如果该文件夹下没有文件,默认是不会在微信小程序开发平台中显示该文件夹的。)

uni-app使用微信小程序云函数的步骤示例

修改manifest.json

在uni-app根目录下,修改manifest.json中的微信小程序项,结构如下

"mp-weixin" : {
    /* 小程序特有相关 */
    "appid" : "wxd7de467f6e6cf741",
    "cloudfunctionRoot": "./functions/", // 这一行就是标记云函数目录的字段
    "setting" : {
      "urlCheck" : false
    },
    "usingComponents" : true
  }

编写vue.config.js

  • 我们在项目根目录创建vue.config.js文件
  • 写入以下内容(如路径不一样请做相应适配)
const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = {
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin([
        {
          from: path.join(__dirname, 'functions'),
          to: path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'functions')
        }
      ])
    ]
  }
}

编译运行

发现提示如下内容

uni-app使用微信小程序云函数的步骤示例

说明未安装copy-webpack-plugin插件,我们手动安装一下。

uni-app使用微信小程序云函数的步骤示例

然后编译运行,发现微信开发者工具里面出现以下内容。

uni-app使用微信小程序云函数的步骤示例

截止目前,已打通Hbuilder X到微信开发者工具的自动复制,即已解决本文的核心内容。以下为进一步测试。

创建云函数

(在微信开发者工具操作)我们在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,我们将该云函数命名为check。开发者工具在本地创建出云函数目录和入口 index.js 文件,同时在线上环境中创建出对应的云函数。创建成功后,工具会提示是否立即本地安装依赖,确定后工具会自动安装 wx-server-sdk。我们会看到以下内容。

创建好后将其同步复制到uni-app项目,即可为以后自动同步行方便,又可避免在输出文件夹中云函数的意外丢失。至此,相关文件编写工作转至Hbuilder X,云函数上传部署依旧在微信开发者工具。

uni-app使用微信小程序云函数的步骤示例

编写云函数

默认的云函数只是一个返回用户基本数据的内容,我们将其修改至满足我们的业务需求,以内容安全云调用为例。

在云函数文件中写入以下内容

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async(event, context) => {
 try {
  console.log('待检测文本:' + event.content);
  let result = await cloud.openapi.security.msgSecCheck({
   content: event.content
  })
  console.log('result:' + JSON.stringify(result));

  if (result && result.errCode.toString() === '87014') {
   return {
    code: 300,
    msg: '内容含有违法违规内容',
    data: result
   }
  } else {
   return {
    code: 200,
    msg: 'ok',
    data: result
   }
  }

 } catch (err) {
  if (err.errCode.toString() === '87014') {
   return {
    code: 300,
    msg: '内容含有违法违规内容',
    data: err
   }
  }
  return {
   code: 400,
   msg: '调用security接口异常',
   data: err
  }
 }
}

权限申明

在函数目录下,创建一个config.json,文档说会自动创建,但是实际操作时可能不会自动创建。config.json内容如下。

uni-app使用微信小程序云函数的步骤示例

{
  "permissions": {
    "openapi": [
      "security.msgSecCheck"       //接口名
    ]
  }
}

uni-app使用微信小程序云函数的步骤示例

小程序调用云函数

wx.cloud.init()               //调用前需先调用init
        wx.cloud.callFunction({
          name: 'check',
          data: {
            "content": this.contents.join()
          }
        }).then(res => {
          console.log(res.result)
          if (res.result.code == 300) {
            uni.showModal({
              title: "温馨提示",
              content: "你所输入的内容可能含有违法违规内容,不支持进行下一步操作"
            })
            return
          } else {
            ... // 你要进行的操作
          }
        })

效果展示

uni-app使用微信小程序云函数的步骤示例

如果第一次出现错误:invalid scope 没有权限,请先开通云服务

这是因为 小程序开发选择了云服务开发,但是没有开通云服务导致,点击微信开发工具上方的 云开发按钮,开通云开发。

uni-app使用微信小程序云函数的步骤示例

新建云函数(上床并部署后会自动出现)

uni-app使用微信小程序云函数的步骤示例

到此这篇关于uni-app使用微信小程序云函数的步骤示例的文章就介绍到这了,更多相关uni-app使用微信小程序云函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
js字符串转成JSON
Nov 07 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
jQuery编写textarea输入字数限制代码
Mar 23 jQuery
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
Jul 02 Javascript
JS实现的ajax和同源策略(实例讲解)
Dec 01 Javascript
JS开发自己的类库实例分析
Aug 28 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 Javascript
解决Antd 里面的select 选择框联动触发的问题
Oct 24 Javascript
AutoJs实现刷宝短视频的思路详解
May 22 #Javascript
jquery更改元素属性attr()方法操作示例
May 22 #jQuery
微信小程序转化为uni-app项目的方法示例
May 22 #Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 #Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 #jQuery
JS变量提升原理与用法实例浅析
May 22 #Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 #Javascript
You might like
php加密解密字符串示例
2016/10/13 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
浅谈vue项目重构技术要点和总结
2018/01/23 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
python list转矩阵的实例讲解
2018/08/04 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Python定义一个函数的方法
2020/06/15 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
执行力心得体会
2013/12/31 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python