uni-app使用微信小程序云函數(shù)的步驟示例
創(chuàng)建云函數(shù)目錄
首先,我們需要在uni-app項(xiàng)目文件夾下,創(chuàng)建一個(gè)云函數(shù)目錄,路徑隨意,我這里是functions
。然后先隨便在里面放一些文件,這里以new_file.css
為例。(放文件的原因是:確保編譯成小程序后cloudfunctions文件夾存在。如果該文件夾下沒(méi)有文件,默認(rèn)是不會(huì)在微信小程序開(kāi)發(fā)平臺(tái)中顯示該文件夾的。)
修改manifest.json
在uni-app根目錄下,修改manifest.json
中的微信小程序項(xiàng),結(jié)構(gòu)如下
"mp-weixin" : { /* 小程序特有相關(guān) */ "appid" : "wxd7de467f6e6cf741", "cloudfunctionRoot": "./functions/", // 這一行就是標(biāo)記云函數(shù)目錄的字段 "setting" : { "urlCheck" : false }, "usingComponents" : true }
編寫(xiě)vue.config.js
- 我們?cè)陧?xiàng)目根目錄創(chuàng)建vue.config.js文件
- 寫(xiě)入以下內(nèi)容(如路徑不一樣請(qǐng)做相應(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') } ]) ] } }
編譯運(yùn)行
發(fā)現(xiàn)提示如下內(nèi)容
說(shuō)明未安裝copy-webpack-plugin
插件,我們手動(dòng)安裝一下。
然后編譯運(yùn)行,發(fā)現(xiàn)微信開(kāi)發(fā)者工具里面出現(xiàn)以下內(nèi)容。
截止目前,已打通Hbuilder X到微信開(kāi)發(fā)者工具的自動(dòng)復(fù)制,即已解決本文的核心內(nèi)容。以下為進(jìn)一步測(cè)試。
創(chuàng)建云函數(shù)
(在微信開(kāi)發(fā)者工具操作)我們?cè)谠坪瘮?shù)根目錄上右鍵,在右鍵菜單中,可以選擇創(chuàng)建一個(gè)新的 Node.js 云函數(shù),我們將該云函數(shù)命名為check。開(kāi)發(fā)者工具在本地創(chuàng)建出云函數(shù)目錄和入口 index.js 文件,同時(shí)在線上環(huán)境中創(chuàng)建出對(duì)應(yīng)的云函數(shù)。創(chuàng)建成功后,工具會(huì)提示是否立即本地安裝依賴,確定后工具會(huì)自動(dòng)安裝 wx-server-sdk。我們會(huì)看到以下內(nèi)容。
創(chuàng)建好后將其同步復(fù)制到uni-app項(xiàng)目,即可為以后自動(dòng)同步行方便,又可避免在輸出文件夾中云函數(shù)的意外丟失。至此,相關(guān)文件編寫(xiě)工作轉(zhuǎn)至Hbuilder X
,云函數(shù)上傳部署依舊在微信開(kāi)發(fā)者工具。
編寫(xiě)云函數(shù)
默認(rèn)的云函數(shù)只是一個(gè)返回用戶基本數(shù)據(jù)的內(nèi)容,我們將其修改至滿足我們的業(yè)務(wù)需求,以內(nèi)容安全云調(diào)用為例。
在云函數(shù)文件中寫(xiě)入以下內(nèi)容
// 云函數(shù)入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函數(shù)入口函數(shù) exports.main = async(event, context) => { try { console.log('待檢測(cè)文本:' + 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)建一個(gè)config.json
,文檔說(shuō)會(huì)自動(dòng)創(chuàng)建,但是實(shí)際操作時(shí)可能不會(huì)自動(dòng)創(chuàng)建。config.json
內(nèi)容如下。
{ "permissions": { "openapi": [ "security.msgSecCheck" //接口名 ] } }
小程序調(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)容,不支持進(jìn)行下一步操作" }) return } else { ... // 你要進(jìn)行的操作 } })
效果展示
如果第一次出現(xiàn)錯(cuò)誤:invalid scope 沒(méi)有權(quán)限,請(qǐng)先開(kāi)通云服務(wù)
這是因?yàn)?小程序開(kāi)發(fā)選擇了云服務(wù)開(kāi)發(fā),但是沒(méi)有開(kāi)通云服務(wù)導(dǎo)致,點(diǎn)擊微信開(kāi)發(fā)工具上方的 云開(kāi)發(fā)按鈕,開(kāi)通云開(kāi)發(fā)。
新建云函數(shù)(上床并部署后會(huì)自動(dòng)出現(xiàn))
到此這篇關(guān)于uni-app使用微信小程序云函數(shù)的步驟示例的文章就介紹到這了,更多相關(guān)uni-app使用微信小程序云函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序8種數(shù)據(jù)通信的方式小結(jié)
這篇文章主要介紹了微信小程序8種數(shù)據(jù)通信的方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02利用Javascript裁剪圖片并存儲(chǔ)的簡(jiǎn)單實(shí)現(xiàn)
裁剪圖片對(duì)我們來(lái)說(shuō)是再熟悉不過(guò)的了,最近工作中就又遇到了這個(gè)需求,所以想著干脆整理下來(lái),方法大家和自己在需要的時(shí)候參考學(xué)習(xí),所以這篇文章主要介紹了利用Javascript裁剪圖片并存儲(chǔ)的簡(jiǎn)單實(shí)現(xiàn),后端PHP處理我用的是THINKPHP框架,需要的朋友可以參考下。2017-03-03微信小程序?qū)崿F(xiàn)的點(diǎn)擊按鈕 彈出底部上拉菜單功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的點(diǎn)擊按鈕 彈出底部上拉菜單功能,結(jié)合實(shí)例形式分析了action-sheet組件及事件響應(yīng)簡(jiǎn)單使用技巧,需要的朋友可以參考下2018-12-12整理關(guān)于Bootstrap模態(tài)彈出框的慕課筆記
這篇文章主要為大家整理了關(guān)于Bootstrap模態(tài)彈出框的慕課筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03BootStrap Datepicker 插件修改為默認(rèn)中文的實(shí)現(xiàn)方法
bootstrap-datepicker 是一個(gè)非常優(yōu)秀的時(shí)間選擇插件,默認(rèn)是英文顯示日期的,通過(guò)下面幾個(gè)小修改讓其支持默認(rèn)中文。下面通過(guò)本文給大家介紹BootStrap Datepicker 插件修改為默認(rèn)中文的實(shí)現(xiàn)方法,一起看看吧2017-02-02