h5如何使用navigateBack回退到微信小程序頁面并攜帶參數

前言

在h5中使用navigateBack回退到微信小程序頁面很常見,但是有一種交互需要在回退之后的頁面可以得到通知,拿到標識之后,進行某些操作,這樣的話,由于微信官方并沒有直接提供這樣的api,就需要我們開動腦筋曲線救國一下:navigateBack +?postMessage

前置資源引入jssdk

微信端

在需要調用JS接口的頁面引入如下JS文件:http://res.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)

如需進一步提升服務穩定性,當上述資源不可訪問時,可改訪問:http://res2.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)

備注:支持使用 AMD/CMD 標準模塊加載方法加載。

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

支付寶端

支付寶小程序可以使用 webview 承載一個 H5 頁面,但是不能在 webview 中直接調起支付,需要引入支付寶的??https://appx/web-view.min.js?(此鏈接僅支持在支付寶客戶端內訪問)文件。

  <script>if (navigator.userAgent.indexOf('AlipayClient') > -1) {document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>')}</script>

核心代碼

H5頁面

// 方法封裝
export function navigateBackJumpParams(paramObj) {if (typeof window.my !== 'undefined') {// 支付寶小程序window.my.postMessage({data: JSON.stringify(paramObj)})window.my.navigateBack({ delta: 1 })} else {// 小程序window.wx.miniProgram.postMessage({data: JSON.stringify(paramObj)})window.wx.miniProgram.navigateBack({ delta: 1 })}
}// 場景觸發const paramObj = {couponSelectFlag: false,pageFromKey: "confirmOrderCouponListKey"}navigateBackJumpParams(paramObj)

1、支付寶小程序使用window.my對象;微信小程序使用window.wx.miniProgram對象

2、發送消息的方式是調用postMessage方法,該方法接受一個對象作為參數,參數必須使用固定字段【data】;paramObj?必須是一個 JavaScript 對象,否則無法使用?JSON.stringify?函數將其轉換為 JSON 字符串。

3、回退到當前小程序頁面是調用navigateBack函數,該方法接受一個對象作為參數,delta表示返回的頁面數,如果 delta 大于現有頁面數,則返回到首頁。

微信項目中

承載網頁的容器 - web-view

// template
<web-viewwx:if="{{ url }}"src="{{ url }}"bindmessage="getMessageFromHTML"binderror="handleWebViewError"
></web-view>// methods
async getMessageFromHTML(e) {if(e.detail?.data) {const postMessageInfo = Array.isArray(e.detail.data)? e.detail.data[0] || '': e.detail.data || ''let postMessageInfoParse = {}try {postMessageInfoParse = postMessageInfo ? JSON.parse(postMessageInfo) : {}} catch (error) {postMessageInfoParse = postMessageInfo}// 獲取與h5頁面商定的事件名稱邏輯if(postMessageInfoParse.pageFromKey === 'confirmOrderLslCouponList' && postMessageInfoParse.couponSelectFlag) {EventBus.emit('confirmOrderLslQueryEstimate', {couponSelectLslFlag: true})return}
}

使用頁面的監聽

// confirmOrderLslQueryEstimate是web-view發出的事件名稱
async attached() {EventBus.on('confirmOrderLslQueryEstimate', (data) => {// doing 監聽到該事件時,頁面具體做的操作})
}// 組件的頁面生命周期-監聽頁面卸載
detached() {EventBus.un('confirmOrderLslQueryEstimate')
},

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

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

相關文章

視頻剪輯有妙招:批量置入封面,輕松提升視頻效果

隨著社交媒體的興起&#xff0c;視頻已經成為分享和交流的重要方式。無論是專業的內容創作者還是普通的社交媒體用戶&#xff0c;都要在視頻剪輯上下一番功夫&#xff0c;才能讓視頻更具吸引力。而一個吸引的封面往往能在一瞬間抓住眼球&#xff0c;提高點擊率。還在因如何選擇…

【SpringBoot】Redisson 分布式鎖注解和 @Transactional 注解一起使用問題

一、前言 平時使用切面去加分布式鎖&#xff0c;是先開啟事務還是先嘗試獲得鎖&#xff1f;這兩者有啥區別&#xff1f; 業務中怎么控制切面的順序&#xff1f;切面的順序對事務的影響怎么避免&#xff1f; 下面程序分析&#xff1a; OverrideTransactionalpublic ReceiveH5…

uni-app - 彈出框

目錄 1.基本介紹 2.原生uinapp 通過uni.showActionSheet實現 3.使用組件 Popup 彈出層 ③效果展示 1.基本介紹 彈出框讓我們在需要時在屏幕底部彈出一個菜單&#xff0c;它通常用于在各種應用程序中進行選擇操作。Uniapp為我們提供了基本的底部彈出框組件&#xff0c;但它也有…

OpenSearch開發環境安裝Docker和Docker-Compose兩種方式

文章目錄 簡介常用請求創建映射寫入數據查詢數據其他 安裝Docker方式安裝OpenSearch安裝OpenSearchDashboard Docker-Compose方式Docker-Compose安裝1.設置主機環境2.下載docker-compose.yml文件3.啟動docker-compose4.驗證 問題問題1&#xff1a;IPv4 forwarding is disabled.…

如何搭建Zblog網站并通過內網穿透將個人博客發布到公網

文章目錄 1. 前言2. Z-blog網站搭建2.1 XAMPP環境設置2.2 Z-blog安裝2.3 Z-blog網頁測試2.4 Cpolar安裝和注冊 3. 本地網頁發布3.1. Cpolar云端設置3.2 Cpolar本地設置 4. 公網訪問測試5. 結語 1. 前言 想要成為一個合格的技術宅或程序員&#xff0c;自己搭建網站制作網頁是繞…

Altium Designer學習筆記11

畫一個LED的封裝&#xff1a; 使用這個SMD5050的封裝。 我們先看下這個芯片的功能說明&#xff1a; 5050貼片式發光二極管&#xff1a; XL-5050 是單線傳輸的三通道LED驅動控制芯片&#xff0c;采用的是單極性歸零碼協議。 數據再生模塊的功能&#xff0c;自動將級聯輸出的數…

CSGO搬磚干貨,全網最詳細教學!

CSGO游戲搬磚全套操作流程及注意事項&#xff08;第一課&#xff09; 在電競游戲中&#xff0c;CSGO&#xff08;Counter-Strike: Global Offensive&#xff09;被廣大玩家譽為經典之作。然而&#xff0c;除了在游戲中展現個人實力和團隊合作外&#xff0c;有些玩家還將CSGO作為…

Java之API(上)

前言&#xff1a; 這一次內容主要是圍繞Java開發中的一些常用類&#xff0c;然后主要是去學習這些類里面的方法。 一、高級API&#xff1a; (1)介紹&#xff1a;API指的是應用程序編程接口&#xff0c;API可以讓編程變得更加方便簡單。Java也提供了大量API供程序開發者使用&…

如何使用Google My Business來提升您的內容和SEO?

如果您的企業有實體店&#xff0c;那么使用Google My Business&#xff08;GMB&#xff09;來改善您的本地SEO并增強您的在線形象至關重要。Google My Business &#xff08;GMB&#xff09; 是 Google 提供的補充工具&#xff0c;使企業能夠控制其在 Google 搜索和地圖上的數字…

大數據基礎設施搭建 - Flume

文章目錄 一、上傳壓縮包二、解壓壓縮包三、監控本地文件&#xff08;file to kafka&#xff09;3.1 編寫配置文件3.2 自定義攔截器3.2.1 開發攔截器jar包&#xff08;1&#xff09;創建maven項目&#xff08;2&#xff09;開發攔截器類&#xff08;3&#xff09;開發pom文件&a…

【數字化轉型方法論讀書筆記】-數據中臺角色解讀

一千個讀者&#xff0c;就有一千個哈姆雷特。同樣&#xff0c;數據中臺對于企業內部不同角色的價值也不同&#xff0c;下面分別從董事長、CEO、 CTO/CIO、IT 架構師、數據分析師這 5 個角色的視角詳細解讀數據中臺。 1、董事長視角下的數據中臺 在數字經濟時代&#xff0c;企業…

RTT打印在分區跳轉后無法打印問題

場景&#xff1a; RTT打印僅占用JLINK的帶寬&#xff0c;比串口傳輸更快更簡潔&#xff0c;同時RTT可以使用jscope對代碼里面的變量實時繪圖顯示波形&#xff0c;而采用串口打印波形無法實時打印。同時可以保存原始數據到本地進行分析&#xff0c;RTT在各方面完勝串口。 問題描…

PTA-城市間緊急救援

作為一個城市的應急救援隊伍的負責人&#xff0c;你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連接城市的快速道路。每個城市的救援隊數量和每一條連接兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助電話給你的時候&#xff0c;你的任務是帶領你的…

采樣概率 假設檢驗推導數組最大值的方法與可行性

當需要尋找大量數據中的最大值的時候&#xff0c;比如從 2G 個 float16 中尋找其中的最大值&#xff0c;是一件耗時的操作。 現計劃通過小樣本來發掘數據的規律&#xff0c;對最大值進行預測。 方案&#xff1a; step1&#xff0c;從2G個float16 中截取64段float16&#xff…

【Vue入門篇】基礎篇—Vue指令,Vue生命周期

&#x1f38a;專欄【JavaSE】 &#x1f354;喜歡的詩句&#xff1a;更喜岷山千里雪 三軍過后盡開顏。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f354;Vue概述&#x1f384;快速入門&#x1f33a;Vue指令?v-…

AI繪畫工具匯總:免費、簡單易上手

歡迎來到魔法寶庫&#xff0c;傳遞AIGC的前沿知識&#xff0c;做有格調的分享? 喜歡的話記得點個關注吧&#xff01; 提到AI繪畫&#xff0c;許多人通常會想到Midjourney和Stable Diffusion等工具&#xff0c;然而&#xff0c;這些工具對于新手而言門檻較高&#xff0c;不太友…

【C++】——標準模板庫STL作業(其一)

&#x1f383;個人專欄&#xff1a; &#x1f42c; 算法設計與分析&#xff1a;算法設計與分析_IT閆的博客-CSDN博客 &#x1f433;Java基礎&#xff1a;Java基礎_IT閆的博客-CSDN博客 &#x1f40b;c語言&#xff1a;c語言_IT閆的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

opencv使用pyinstaller打包錯誤:‘can‘t find starting number (in the name of file)

使用Python語言和opencv模塊在pycharm中編輯的代碼運行沒問題&#xff0c;但是在使用pyinstaller打包后出現錯誤can‘t find starting number (in the name of file) [ERROR:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-q3d_8t8e\opencv\modules\videoi…

安卓畢業設計基于安卓android微信小程序的家校通系統

運行環境 開發語言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服務器&#xff1a;tomcat7 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序運行軟件&#xff1a;微信開發者 項目介紹 基于微信小程序的家校通系統的設計基…

【實用】PPT沒幾頁內存很大怎么解決

PPT頁數很少但導出內存很大解決方法 1.打開ppt點擊左上角 “文件”—“選項” 2.對話框選擇 “常規與保存” &#xff08;1&#xff09;如果想要文件特別小時可 取消勾選 “將字體嵌入文件” &#xff08;2&#xff09;文件大小適中 可選擇第一個選項 “僅最入文檔中所用的字…