溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

uni-app如何使用微信小程序云函數(shù)

發(fā)布時間:2020-07-22 14:57:29 來源:億速云 閱讀:506 作者:小豬 欄目:web開發(fā)

這篇文章主要為大家展示了uni-app如何使用微信小程序云函數(shù),內(nèi)容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

創(chuàng)建云函數(shù)目錄

首先,我們需要在uni-app項目文件夾下,創(chuàng)建一個云函數(shù)目錄,路徑隨意,我這里是functions。然后先隨便在里面放一些文件,這里以new_file.css為例。(放文件的原因是:確保編譯成小程序后cloudfunctions文件夾存在。如果該文件夾下沒有文件,默認是不會在微信小程序開發(fā)平臺中顯示該文件夾的。)

uni-app如何使用微信小程序云函數(shù)

修改manifest.json

在uni-app根目錄下,修改manifest.json中的微信小程序項,結(jié)構(gòu)如下

"mp-weixin" : {
    /* 小程序特有相關(guān) */
    "appid" : "wxd7de467f6e6cf741",
    "cloudfunctionRoot": "./functions/", // 這一行就是標記云函數(shù)目錄的字段
    "setting" : {
      "urlCheck" : false
    },
    "usingComponents" : true
  }

編寫vue.config.js

  • 我們在項目根目錄創(chuàng)建vue.config.js文件
  • 寫入以下內(nèi)容(如路徑不一樣請做相應(yīng)適配)
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')
        }
      ])
    ]
  }
}

編譯運行

發(fā)現(xiàn)提示如下內(nèi)容

uni-app如何使用微信小程序云函數(shù)

說明未安裝copy-webpack-plugin插件,我們手動安裝一下。

uni-app如何使用微信小程序云函數(shù)

然后編譯運行,發(fā)現(xiàn)微信開發(fā)者工具里面出現(xiàn)以下內(nèi)容。

uni-app如何使用微信小程序云函數(shù)

截止目前,已打通Hbuilder X到微信開發(fā)者工具的自動復制,即已解決本文的核心內(nèi)容。以下為進一步測試。

創(chuàng)建云函數(shù)

(在微信開發(fā)者工具操作)我們在云函數(shù)根目錄上右鍵,在右鍵菜單中,可以選擇創(chuàng)建一個新的 Node.js 云函數(shù),我們將該云函數(shù)命名為check。開發(fā)者工具在本地創(chuàng)建出云函數(shù)目錄和入口 index.js 文件,同時在線上環(huán)境中創(chuàng)建出對應(yīng)的云函數(shù)。創(chuàng)建成功后,工具會提示是否立即本地安裝依賴,確定后工具會自動安裝 wx-server-sdk。我們會看到以下內(nèi)容。

創(chuàng)建好后將其同步復制到uni-app項目,即可為以后自動同步行方便,又可避免在輸出文件夾中云函數(shù)的意外丟失。至此,相關(guān)文件編寫工作轉(zhuǎn)至Hbuilder X,云函數(shù)上傳部署依舊在微信開發(fā)者工具。

uni-app如何使用微信小程序云函數(shù)

編寫云函數(shù)

默認的云函數(shù)只是一個返回用戶基本數(shù)據(jù)的內(nèi)容,我們將其修改至滿足我們的業(yè)務(wù)需求,以內(nèi)容安全云調(diào)用為例。

在云函數(shù)文件中寫入以下內(nèi)容

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

cloud.init()

// 云函數(shù)入口函數(shù)
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: '內(nèi)容含有違法違規(guī)內(nèi)容',
    data: result
   }
  } else {
   return {
    code: 200,
    msg: 'ok',
    data: result
   }
  }

 } catch (err) {
  if (err.errCode.toString() === '87014') {
   return {
    code: 300,
    msg: '內(nèi)容含有違法違規(guī)內(nèi)容',
    data: err
   }
  }
  return {
   code: 400,
   msg: '調(diào)用security接口異常',
   data: err
  }
 }
}

權(quán)限申明

在函數(shù)目錄下,創(chuàng)建一個config.json,文檔說會自動創(chuàng)建,但是實際操作時可能不會自動創(chuàng)建。config.json內(nèi)容如下。

uni-app如何使用微信小程序云函數(shù)

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

uni-app如何使用微信小程序云函數(shù)

小程序調(diào)用云函數(shù)

wx.cloud.init()               //調(diào)用前需先調(diào)用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: "你所輸入的內(nèi)容可能含有違法違規(guī)內(nèi)容,不支持進行下一步操作"
            })
            return
          } else {
            ... // 你要進行的操作
          }
        })

效果展示

uni-app如何使用微信小程序云函數(shù)

如果第一次出現(xiàn)錯誤:invalid scope 沒有權(quán)限,請先開通云服務(wù)

這是因為 小程序開發(fā)選擇了云服務(wù)開發(fā),但是沒有開通云服務(wù)導致,點擊微信開發(fā)工具上方的 云開發(fā)按鈕,開通云開發(fā)。

uni-app如何使用微信小程序云函數(shù)

新建云函數(shù)(上床并部署后會自動出現(xiàn))

uni-app如何使用微信小程序云函數(shù)

以上就是關(guān)于uni-app如何使用微信小程序云函數(shù)的內(nèi)容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI