QQ小程序 在云函數(shù)中使用

2020-07-10 13:51 更新

首次使用

使用云開發(fā)擴(kuò)展能力之前,需要先在云開發(fā)控制臺(tái)安裝相關(guān)擴(kuò)展程序。具體步驟:

  1. 打開云開發(fā)擴(kuò)展控制臺(tái)
  2. 選擇希望安裝的擴(kuò)展
  3. 單擊【安裝】,進(jìn)行擴(kuò)展程序的安裝
  4. 等待擴(kuò)展程序安裝完成即可使用

在小程序中使用

小程序基礎(chǔ)庫(kù)從1.14.1版本開始支持。 使用云開發(fā)擴(kuò)展能力需要額外引入 @cloudbase/extension-ci npm包,具體引入辦法:

  1. 在小程序根目錄執(zhí)行npm install --save @cloudbase/extension-ci
  2. 點(diǎn)擊QQ小程序開發(fā)者頂部欄 - 工具 - 構(gòu)建npm
  3. 在小程序代碼中引入@cloudbase/extension-ci

示例代碼

const extCI = require('@cloudbase/extension-ci');


// 初始化環(huán)境
qq.cloud.init({
    env:"test-x1dzi"
})


// 注冊(cè)云開發(fā)擴(kuò)展
qq.cloud.registerExtension(extCI);


// 用戶選擇圖片
qq.chooseImage({
  success:res=>{
    // 使用文件管理讀取文件內(nèi)容
    const fsm = qq.getFileSystemManager();
    const filePath = res.tempFilePaths[0];
    const cloudPath = `demo.jpeg`;


    fsm.readFile({
      filePath:filePath,
      success:res2=>{


        const fileContent = res2.data; // 格式為ArrayBuffer


        // 使用云開發(fā)擴(kuò)展能力轉(zhuǎn)換圖片格式
        qq.cloud.invokeExtension("CloudInfinite", {
          action: "ImageProcess",
          cloudPath: cloudPath, // 存儲(chǔ)圖像的絕對(duì)路徑,與qq.cloud.uploadFile中一致
          fileContent:fileContent, // 該字段可選,文件內(nèi)容:ArrayBuffer|Buffer。有值,表示上傳時(shí)處理圖像;為空,則處理已經(jīng)上傳的圖像
          operations: {
            rules: [
              {
                  fileid: `/image_process/demo.png`,// 處理結(jié)果的文件路徑,如以’/’開頭,則存入指定文件夾中,否則,存入原圖文件存儲(chǔ)的同目錄
                  rule: "imageView2/format/png" // 處理樣式參數(shù),與下載時(shí)處理圖像在url拼接的參數(shù)一致
              }
            ]
          }
        }).then(res=>{
          console.log(res)
        })
      }
    })
  }
})

在云函數(shù)中使用 在云函數(shù)目錄安裝 @cloudbase/extension-ci

npm install @cloudbase/extension-ci

示例代碼:

const cloud = require('qq-server-sdk');
const extCI = require('@cloudbase/extension-ci');
// 初始化環(huán)境
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})


// 注冊(cè)云開發(fā)擴(kuò)展
cloud.registerExtension(extCI);


// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {


  const cloudPath = event.cloudPath;


  // 使用云開發(fā)擴(kuò)展能力生成水印
  const res = await cloud.invokeExtension("CloudInfinite", {
    action: "ImageProcess",
    cloudPath: cloudPath, // 存儲(chǔ)圖像的絕對(duì)路徑,與cloud.uploadFile中一致
    operations: {
      rules: [
        {
            fileid: `/image_process/${cloudPath}`,// 處理結(jié)果的文件路徑,如以’/’開頭,則存入指定文件夾中,否則,存入原圖文件存儲(chǔ)的同目錄
            // 處理樣式參數(shù),與下載時(shí)處理圖像在url拼接的參數(shù)一致
            rule: "watermark/2/text/6IW-6K6v5LqRwrfkuIfosaHkvJjlm74/fill/IzNEM0QzRA/fontsize/20/dissolve/50/gravity/northeast/dx/20/dy/20/batch/1/degree/45" 
        }
      ]
    }
  })


  return {
    res
  }
}

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)