原生小程序生成二維碼并保存到本地

需求:我要在一個頁面中生成一個二維碼,并且這個二維碼可以長按保存到本地或者發送給好友;

我這里是將生成的canvas二維碼轉換成圖片,利用長按圖片進行保存或轉發

效果圖:

第一步先下載對應的包:

npm install weapp-qrcode --save

第二步:?wxml

????????我們需要準備一個生成二維碼的canvas

<canvas class="pf canvas" style="width:260rpx;height:260rpx;" canvas-id="myQrcode" id="myQrcode"></canvas>

canvas-id="myQrcode"? ? ? ? 這個id是生成二維碼的時候需要

id="myQrcode"? ? ? ? 這個id是轉換圖片的時候需要

? ? ? ? 還需要一個存放圖片的image?(圖片的位置自定義)

<image show-menu-by-longpress="true" src="{{qrcodeUrl}}" mode="aspectFit"></image>

show-menu-by-longpress="true"? ? ? ? 必須存在

?第三步:JS

????????先導入weapp-qrcode包


import drawQrcode from 'weapp-qrcode'

? ? ? ?data中定義需要用到的變量

data: {showCodeFn:false,qrcodeUrl:''},

????????開始生成二維碼?

onLoad(options) {
var that = this
drawQrcode({width:130,height:130,canvasId: 'myQrcode',text: config.temporaryUrl+'wechat/unit/'+options.unitId,callback:function(e){//我這里判斷如果二維碼生成成功就調用轉換圖片的方法,萬一在沒生成二維碼之前,用戶點擊了圖片的,報錯或者看不見就尷尬了that.drawImg()}})},

至于需要在哪個生命周期函數中生成二維碼,自己定

? ? ? ? ?將二維碼轉換成圖片的方法

drawImg(){var that = this// 創建一個選擇器查詢對象const query = wx.createSelectorQuery();// 執行查詢并獲取 canvas 節點的實例query.select('#myQrcode').boundingClientRect()// 查詢結束后執行回調函數query.exec((res) => {if (res[0]) {// res[0] 是 canvas 節點信息,確保節點存在wx.canvasToTempFilePath({canvasId: 'myQrcode',success(res) {that.setData({
//因為的的需求是點擊某個地方,才讓圖片顯示,所以在沒生成圖片之前,先把需要點擊的那個地方隱藏了,等生成圖片成功后,再放出來,所以這里是控制那個點擊地方的顯示/隱藏showCodeFn:true})console.log('查詢成功')const tempFilePath = res.tempFilePath;console.log(tempFilePath);that.setData({
//這是圖片地址qrcodeUrl: tempFilePath})},fail(err) {console.error( err);}});} else {console.error('未能找到對應的 canvas 節點');}});},

完成 ??ヽ(°▽°)ノ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44731.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44731.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44731.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

防火墻綜合實驗1

實驗拓撲圖&#xff1a; 實驗需求&#xff1a; 1、DMZ區內的服務器&#xff0c;辦公區僅能在辦公時間內(9:00-18:00)可以訪問&#xff0c;生產區的設備全天可以訪問。 2、生產區不允許訪問互聯網&#xff0c;辦公區和游客區允許訪問互聯網。 3、辦公區設備10.0.2.10不允許訪問…

rancher管理多個集群

一、rancher部署 單獨部署到一臺機器上&#xff0c;及獨立于k8s集群之外&#xff1a; 刪除所有yum源&#xff0c;重新建yum源&#xff1a; # 建centos7.9的yum源 # cat CentOS-Base.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the …

OR-152 IGBT光耦系列

●緩沖邏輯類型&#xff08;圖騰柱輸出&#xff09; ●輸出峰值電流&#xff1a; 2.5 A &#xff08;最大值&#xff09; ●電源電流&#xff1a; 3 mA &#xff08;最大值&#xff09; ● 電源電壓&#xff1a; 10 至 30 V ●閾值輸入電流&#xff1a; 7.5 mA&#xf…

Java面向對象進階篇綜合訓練(附帶全套源代碼及逐語句分析)->基于javabeen

一、前言 面向對象這一塊也要結束了&#xff0c;不知道讀者們掌握的如何呢。不過面向對象的路程遠不止于此&#xff0c;可以利用面向對象來做一些小型的系統來鞏固一下。接下來就進入新的章節了&#xff0c;回顧一下這已經是第五天了&#xff0c;之前說的7天拿下java還是太過于…

常用的Redis命令介紹

常用的Redis命令介紹 Redis 是一個高性能的鍵值存儲數據庫&#xff0c;支持多種數據結構&#xff0c;如字符串&#xff08;String&#xff09;、哈希&#xff08;Hash&#xff09;、列表&#xff08;List&#xff09;、集合&#xff08;Set&#xff09;和有序集合&#xff08;S…

51單片機:使用蜂鳴器演奏《盜將行》(附代碼詳解)

一、功能實現&#xff1a; 二、代碼內容&#xff1a; 主函數.c #include <REGX52.H> #include "Delay.h" #include "Timer0.h"sbit BuzzerP2^5;#define SPEED 500 //原先默認一個四分音符延遲500ms#define P 0 //休止 #define L1 1 //低音…

LLaMA-Factory:開源的低代碼大模型訓練框架

LLaMA-Factory 是一個由零隙智能&#xff08;SeamLessAI&#xff09;開源的低代碼大模型訓練框架&#xff0c;它集成了業界最廣泛使用的微調方法和優化技術&#xff0c;并支持眾多開源模型的微調和二次訓練。 一、功能特點 支持多種開源模型&#xff1a;LLaMA-Factory支持包括…

輻射神經場算法——Instant-NGP / Mipi-NeRF 360 / 3D Gaussian Splatting

輻射神經場算法——Instant-NGP / Mipi-NeRF 360 / 3D Gaussian Splatting 1. Instant-NGP1. MultiResolution Hash Encoding1.2 Accelerated Ray Marching1.3 實驗結果 2. Mip-NeRF 3602.1 場景參數化2.2 在線蒸餾2.3 失真正則化2.4 實驗結果 3. 3D Gaussian Splatting3.1 Dif…

krpano開啟日志公能

<krpano version"1.21" title"博物館" debugmode"true" > 之后鼠標右鍵菜單欄最后一行 點擊&#xff08;開啟后會發生變化&#xff09;。

汽車預約維修小程序的設計

管理員賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;技師管理&#xff0c;技師信息管理&#xff0c;用戶預約管理&#xff0c;取消預約管理&#xff0c;訂單信息管理&#xff0c;系統管理 微信端賬號功能包括&#xff1a;系統首頁&#xff0c;技師信息&a…

新開發的軟件老被系統攔截有什么辦法解決嗎?

一套新開發的軟件要想在windows操作系統暢通無阻&#xff0c;那就需要使用代碼簽名證書&#xff0c;只要是對軟件進行實名從而證明軟件發布者身份&#xff0c;確保該軟件是一個合法有效的主體開發的&#xff0c;也是讓這個軟件開發者承擔相應的責任。 特別主要如果要獲得即時性…

【深度學習入門篇 ③】PyTorch的數據加載

【&#x1f34a; 易編橙&#xff1a;一個幫助編程小伙伴少走彎路的終身成長社群&#x1f34a; 】 大家好&#xff0c;我是小森( &#xfe61;?o?&#xfe61; ) &#xff01; 易編橙終身成長社群創始團隊嘉賓&#xff0c;橙似錦計劃領銜成員、阿里云專家博主、騰訊云內容共創…

【漏洞復現】宏景HCM-LoadOtherTreeServlet SQL注入

聲明&#xff1a;本文檔或演示材料僅用于教育和教學目的。如果任何個人或組織利用本文檔中的信息進行非法活動&#xff0c;將與本文檔的作者或發布者無關。 一、漏洞描述 宏景HCM人力資源信息管理系統是一個全面的人力資源管理軟件&#xff0c;它覆蓋了人力資源管理的各個模塊…

報錯:python擴展中的調試器不再支持小于3.7的python版本(debugpy)

報錯&#xff1a;python擴展中的調試器不再支持小于3.7的python版本 原因1&#xff1a; debugpy的版本問題原因2 原因1&#xff1a; debugpy的版本問題 是debugpy和你vscode安裝的python解釋器不匹配&#xff0c;根據你使用的python解釋器的版本重新安裝一個debugpy。 原因2 …

華為官方出品:《應用現代化實踐指南》電子書,可免費下載

本期云享書庫為各位開發者帶來了應用現代化方面的技術內容。 在數字化時代&#xff0c;企業面臨著前所未有的機遇與挑戰。隨著技術的飛速發展&#xff0c;特別是云計算、大數據、人工智能&#xff08;AI&#xff09;和機器學習&#xff08;ML&#xff09;的興起&#xff0c;正…

Python爬蟲速成之路(1):獲取網頁源代碼

hello hello~ &#xff0c;這里是絕命Coding——老白~&#x1f496;&#x1f496; &#xff0c;歡迎大家點贊&#x1f973;&#x1f973;關注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;個人主頁&#xff1a;絕命Coding-CSDN博客 &a…

C#面:簡述什么是中間件(Middleware)?

中間件是組裝到應?程序管道中以處理請求和響應的軟件。 每個組件&#xff1a; 選擇是否將請求傳遞給管道中的下?個組件。 可以在調?管道中的下?個組件之前和之后執??作。 請求委托&#xff08;Request delegates&#xff09;?于構建請求管道&#xff0c;處理每個HTTP請…

Threadlocal使用獲取最后更新人信息

Threadlocal 的作用范圍是一個線程&#xff0c;tomcat啟動默認開啟一個線程 首先點擊登錄&#xff0c;登錄方法會返回token 拿到token后放在請求頭中發送商品的插入請求&#xff0c;在插入是設置拿到token中的nickName&#xff08;花名&#xff09;放入&#xff08;lastUpdate…

windows系統長時間不用,無法喚醒

問題背景 在我們使用windows系統的時候&#xff0c;有這樣一種情況&#xff0c;就是電腦長時間不不操作&#xff0c;就會“睡死”過去。此時再用鼠標鍵盤都無法將其喚醒。沒辦法只能長按電源鍵強制關機&#xff0c;再重啟。那么該如何解決這種問題呢&#xff1f; 原因分析 系…

PLSQL Day7

--9.用戶鍵盤輸入5個數字&#xff0c;將數字按從小到大的順序存入集合中&#xff1a;declare declare type num_type is table of number; n_tab num_type; temp_n number ; begin n_tab: num_type(&n1,&n2,&n3,&n4,&n5); for i in 1..n_tab.co…