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 相关文章推荐
一个js实现的所谓的滑动门
May 23 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
Jan 03 Javascript
Javascript限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
浅析在javascript中创建对象的各种模式
May 06 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
Jul 18 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 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 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
基于python内置函数与匿名函数详解
2018/01/09 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
Django如何批量创建Model
2020/09/01 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
PHP开发的一般流程
2013/08/13 面试题
求网格中的黑点分布
2013/11/06 面试题
师范生个人推荐信
2013/11/29 职场文书
新教师工作感言
2014/02/16 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
社会实践评语
2014/04/28 职场文书
任命书怎么写
2014/06/04 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
公司开业致辞
2015/07/29 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang