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 相关文章推荐
预加载css或javascript的js代码
Apr 23 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
详述JavaScript实现继承的几种方式(推荐)
Mar 22 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
Mar 09 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
Vuex模块化实现待办事项的状态管理
Mar 15 Javascript
详解webpack自动生成html页面
Jun 29 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 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
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php压缩文件夹最新版
2018/07/18 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
浅谈$('div a') 与$('div>a')的区别
2016/07/18 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
微信公众号token验证失败解决方案
2019/07/22 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
params有什么用
2016/03/01 面试题
自我鉴定思想方面
2013/10/07 职场文书
总经理助理工作职责
2014/02/06 职场文书
教师个人学习总结
2015/02/11 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers