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 相关文章推荐
为javascript添加String.Format方法
Aug 11 Javascript
在javascript中对于DOM的加强
Apr 11 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
js实现商城星星评分的效果
Dec 29 Javascript
JS去除空格和换行的正则表达式(推荐)
Jun 14 Javascript
利用iscroll4实现轮播图效果实例代码
Jan 11 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
小程序云开发实现数据库异步操作同步化
May 18 Javascript
微信小程序实现form表单本地储存数据
Jun 27 Javascript
js canvas实现5张图片合成一张图片
Jul 15 Javascript
80行代码写一个Webpack插件并发布到npm
May 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
php文件系统处理方法小结
2016/05/23 PHP
js几个验证函数代码
2010/03/25 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python可视化实现KNN算法
2019/10/16 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
成立公司计划书
2014/05/07 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript