web學習筆記(八十)

目錄

1.小程序實現微信一鍵登錄

2. 小程序的授權流程

?3.小程序配置vant庫

4.小程序配置分包?

5.小程序配置獨立分包

6.小程序分包預下載


1.小程序實現微信一鍵登錄

要先實現小程序一鍵登錄首先我們需要給按鈕設置一個綁定事件,然后在綁定事件內部通過wx.login來獲取登錄憑證code,然后將將code+appid+secret傳遞到開發者服務器,進行登錄操作,發送post請求,此時就需要后端進行接口校驗code和appid是否正確,是否配對,如果校驗成功,后端回利用openid和session_key加密生成token登錄態,返回給小程序。然后前端再將token進行持久化存儲。

Page({/*** 頁面的初始數據*/data: {},login() {// 1.通過wx.login獲取登陸憑證codewx.login({success: (res) => {console.log(res.code);//2. 將code+appid+secret傳遞到開發者服務器,進行登錄操作,發送post請求// 3.開發者服務器利用jscode2session接口校驗code和appid是否正確,是否配對,如果校驗成功,后端回利用openid和session_key加密生成token登錄態,返回給小程序// 4.小程序端將token存儲起來,一鍵登錄就完成了。此后發送請求需在請求頭中攜帶token,讓開發者服務器驗證token是否正確,正確就返回數據。wx.request({url: "http://localhost:3000/login",method: "post",data: {code: res.code,},success: (data) => {console.log(data.data.token);// 做持久化存儲wx.setStorageSync("token", data.data.token);// 向后端發送請求,獲取購物車列表wx.request({url: "http://localhost:3000/carts",header: {auth: wx.getStorageSync("token"),},success: ({ data }) => {console.log("---", data);},});},});},});},
});

2. 小程序的授權流程

當我們的小程序需要定位或者是麥克風權限的時候是需要向用戶發起授權請求的,。然后發起彈窗詢問用戶是否同意授權小程序該權限,如果用戶之前已經同意授權則不會出現彈窗。在微信開發文檔中有很多權限的接口,下面編寫的是獲取定位權限的實例,可以按照這個思路自行編寫其他權限的相關代碼。

  getAddress() {// 獲取用戶精確位置// 1.先查詢是否已授權wx.getSetting({success(res) {console.log(res.authSetting);if (!res.authSetting["scope.userLocation"]) {// 2.調用接口進行授權  wx.authorizewx.authorize({scope: "scope.userLocation",success() {console.log("用戶同意授權");wx.getLocation();},fail() {console.log("用戶拒絕授權");// 3.如果用戶拒絕授權,需要通過wx.openSetting再次進行授權,此時進入授權頁面wx.showModal({title: "提示",content: "定位功能必須開啟定位權限",success: () => {wx.openSetting({success(res) {console.log("開啟成功", res.authSetting);},});},});},});} else {}},});},

?3.小程序配置vant庫

(1)在終端輸入?npm i @vant/weapp命令

(2)把app.js文件中的"style":"v2"去除(這句話是小程序用來渲染頁面用到,小程序的新版基礎組件強行加上了許多樣式,難以覆蓋,不關閉將造成部分組件的樣式混亂。)

(3)構建npm包 (因為我們通過npm安裝的包是node的包,我們需要編譯成小程序的包才可以使用)。

點擊工具>構建即可。

?

編譯完成后會生成下列文件夾

(5)在app.json中 進行全局注冊

eg:注冊vue中的Button組件

  "usingComponents": {"van-button": "@vant/weapp/button/index"}

?

4.小程序配置分包?

? ? ?分包主要用來解決小程序體積過大的問題,小程序本身就有輕量化的特點,因此微信對小程序的體積是有要求的(整個小程序所有的分包大小不超過20MB,開通虛擬支付后的小游戲不超過30MB單個分包/主包不能超過2MB),采用分包可以優化小程序首次啟動的下載時間(和路由懶加載的原理類似),還可以在多團隊共同開發時更好的解耦協作。注意:TabBar頁面只能放在主包里面。

?(1)創建subpackage文件夾,在里面創建pages文件夾,然后將需要放到分包且不是TabBar的頁面移動到pages文件夾內,

(2) 在app.json中修改路由(注意:需要將pages中不需要的路由給刪除掉)

  "subpackages": [{"root": "subpackages","pages": ["pages/Login/Login", "pages/lifecycle/lifecycle"]}],

5.小程序配置獨立分包

? ? ? ? ?獨立分包和小程序內部的分包和主包都沒關系,他是單獨獨立出來的,通常我們將打開小程序時加載的廣告頁面放置到獨立分包內部。

配置獨立分包和分包的步驟是一樣的,只不過是多了一個? "independent": true的配置來證明這個分包是獨立分包。在app.js頁面給分包添加配置:

    {"root": "singlepackage","pages": ["pages/ad/ad"],"independent": true}

6.小程序分包預下載

? ? ? ?因為小程序在加載頁面時只會先加載主包的頁面,分包的頁面是被點擊后才會進行下載的操作,這樣會導致用戶首次進入分包頁面速度較慢,因此我們可以通過分包預下載將點擊量高的頁面所在分包提前下載出來,提供用戶的體驗感(注意:分包預下載是異步操作,系統會先將主包下載完成后進行預下載的操作)。

  "preloadRule": {"pages/index/index": {"network": "all","packages": ["subpackages"]}},

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

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

相關文章

產品經理-工作流程及職能(6)

產品經理作為互聯網項目的主心骨,連接著團隊的所有成員(開發、設計、運營、測試、市場等) 用合理的產品規劃和清晰的產品愿景帶領大家前進,通過滿足用戶需求來創造屬于自己的商業利益。 在通常情況下,PM需要對整個產品…

大數據前沿技術分享——數據編織:現代數據管理的革命性方法

一、什么是數據編織? 數據編織(Data Fabric)是一種現代數據管理架構,旨在通過集成、管理和提供數據訪問來簡化復雜的數據環境。它利用自動化和智能技術,如機器學習和人工智能,來實現數據的無縫連接和統一視…

Yarn: 現代化的JavaScript包管理器

在JavaScript開發的世界里,包管理器是開發者不可或缺的工具。Yarn,由Facebook創建,是一個快速、可靠且安全的依賴管理工具,它為JavaScript應用程序提供了一個更高效的方式來處理包的安裝、更新和版本控制。本文將介紹Yarn的基本用…

刷題Day44|188.買賣股票的最佳時機IV、309.最佳買賣股票時機含冷凍期、714.買賣股票的最佳時機含手續費

188.買賣股票的最佳時機IV 188. 買賣股票的最佳時機 IV - 力扣(LeetCode) 思路:最多買賣k次,每次都有持有和不持有,所以下標最大到dp[i][2k]。 309.最佳買賣股票時機含冷凍期 309. 買賣股票的最佳時機含冷凍期 - 力…

百度智能云創新業務部總經理李想:發揮AI企業科技創新優勢 助力職業教育人才揚帆遠航

前言:百度智能云教育行業解決方案作為百度智能云旗下的創新力量,專注于培養“AI教育”領域的新質生產力人才,一直以來備受職業教育領域的關注。在第六屆人工智能“職教百強”院校長論壇開幕之際,中教全媒體對話論壇嘉賓百度智能云…

最新扣子(Coze)實戰案例:使用圖像流做超分,模糊圖片秒變清晰,完全免費教程

🧙?♂? 大家好,我是斜杠君,手把手教你搭建扣子AI應用。 📜 本教程是《AI應用開發系列教程之扣子(Coze)實戰教程》,完全免費學習。 👀 關注斜杠君,可獲取完整版教程。👍&#x1f3f…

當需要對大量數據進行排序操作時,怎樣優化內存使用和性能?

文章目錄 一、選擇合適的排序算法1. 快速排序2. 歸并排序3. 堆排序 二、數據結構優化1. 使用索引2. 壓縮數據3. 分塊排序 三、外部排序1. 多路歸并排序 四、利用多核和并行計算1. 多線程排序2. 使用并行流 五、性能調優技巧1. 避免不必要的內存復制2. 緩存友好性3. 基準測試和性…

區塊鏈技術如何改變供應鏈管理?

引言 供應鏈管理在現代商業中扮演著至關重要的角色,確保產品和服務從原材料到最終消費者的順利流轉。然而,當前的供應鏈管理面臨諸多挑戰,如信息不透明、數據篡改和效率低下等問題,這些問題嚴重制約了供應鏈的整體效能和可信度&am…

多模態圖像引導手術導航進展

**摘要:**對多模態圖像分割建模、手術方案決策、手術空間位姿標定與跟蹤、多模態圖像配準、圖像融合與顯示等多模態圖像引導手術導航的關鍵技術進行總結和分析,提出其進一步發展面臨的挑戰并展望其未來發展趨勢。 **外科手術的發展歷程:**從最…

簡單分享下python多態

目錄: 一、多態是啥嘞(龍生九子各有不同,這就是多態) 二、基礎的實例 三、多態的優勢與應用場景 四、深入理解 一、多態是啥嘞(龍生九子各有不同,這就是多態) 多態(Polymorphism&…

ffmpeg 獲取視頻時長的命令及其輸出

要獲取視頻的時長,可以使用FFmpeg的-i參數,后跟視頻文件的路徑。下面是獲取視頻時長的命令示例: ffmpeg -i input.mp4輸出示例: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from input.mp4:Metadata:major_brand : mp42minor_vers…

筆記14:程序中的循環結構

生活中的循環現象: -日復一日,年復一年 -春夏秋冬,四季交替 -周日,周一,周二,周三,周四,周五,周六 -人生是一個輪回,多年后,又會回到最初的原點 …

C++|哈希應用->布隆過濾器

目錄 一、概念 二、模擬實現 三、布隆過濾器擴展應用 上一篇章學習了位圖的使用,但它只適用于整數,對于要查詢字符串是否在不在,位圖并不能解決。所以針對這一問題,布隆過濾器可以派上用場,至于布隆過濾器是什么&am…

全球首款商用,AI為視頻自動配音配樂產品上線

近日,海外推出了一款名為Resona V2A的產品,這是全球首款商用視頻轉音頻 (V2A) 技術產品。這項突破性技術利用AI,僅憑視頻數據即可自動生成高質量、與上下文相關的音頻,包括聲音設計、音效、擬音和環境音,為電影制作人、…

linux內核開發之tftp服務搭建

TFTP (Trivial File Transfer Protocol) 是一個簡單的文件傳輸協議,通常用于在計算機網絡中進行文件傳輸。它是FTP的一個簡化版本,主要用于在局域網內部傳輸文件。 主要特點和用途: 簡單性: TFTP設計簡單,功能有限&am…

Hi3861 OpenHarmony嵌入式應用入門--TCP Server

本篇使用的是lwip編寫tcp服務端。需要提前準備好一個PARAM_HOTSPOT_SSID宏定義的熱點,并且密碼為PARAM_HOTSPOT_PSK LwIP簡介 LwIP是什么? A Lightweight TCP/IP stack 一個輕量級的TCP/IP協議棧 詳細介紹請參考LwIP項目官網:lwIP - A Li…

主流I/O模型總結

異步通知I/O模型(Windows) #include<string.h> #include<stdio.h> #include<WinSock2.h> #define BUF_SIZE 100 void CompressSockets(SOCKET hSockArr[], int idx, int total); void CompressEvent(WSAEVENT hEventArr[], int idx, int total); char msg[B…

奇景光電戰略投資Obsidian,共筑熱成像技術新未來

5月29日,業界領先的IC設計公司奇景光電宣布,將對熱成像傳感器解決方案制造商Obsidian進行戰略性投資,并以主要投資者的身份,參與到Obsidian的可轉換票據融資活動中。雖然奇景光電并未公開具體的投資金額,但這一舉動無疑向市場傳遞了一個明確的信號:奇景光電對Obsidian的技…

【INTEL(ALTERA)】為什么我會看到包含管道橋的Nios II設計出現 Flash Programmer 問題?

目錄 說明 解決方法 說明 簡化地址解碼的常見解決方案是將連接到Avalon管道橋后Nios II處理器的數據主的外設放置&#xff0c;有時可能包括一些內存 IP&#xff0c;如片上 RAM。 但是&#xff0c;如果預期內存包含Nios II程序代碼&#xff0c;則應該以與Nios II指令主連接到…

10、matlab中字符、數字、矩陣、字符串和元胞合并為字符串并將字符串以不同格式寫入讀出excel

1、前言 在 MATLAB 中&#xff0c;可以使用不同的數據類型&#xff08;字符、數字、矩陣、字符串和元胞&#xff09;合并為字符串&#xff0c;然后將字符串以不同格式寫入 Excel 文件。 以下是一個示例代碼&#xff0c;展示如何將不同數據類型合并為字符串&#xff0c;并以不…