91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web網頁與小程序間如何進行通信

發布時間:2021-12-07 10:10:34 來源:億速云 閱讀:494 作者:iii 欄目:移動開發

本篇內容介紹了“web網頁與小程序間如何進行通信”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

我們的微信小程序采用的web-view的方式內嵌H5項目,從而減少開發量,在實際只用中會遇到網頁與小程序通信的功能需要,下面我簡單總結了我遇到的問題以及解決方案。

小程序提供的功能

微信提供了網頁向小程序發送消息的方法:wx.miniProgram.postMessage,該方法向小程序發送消息,會在特定時機(小程序后退、組件銷毀、分享)觸發組件的message事件。

簡單介紹一下如果使用,以分享為例,如果頁面A需要特別設置分享內容,比如轉發標題、縮略圖等。可以再網頁中設置好變量值,通過發送給小程序

網頁

let shareData = {
  path: '轉發路徑',
  title: '自定義轉發標題',
  imageUrl: '縮略圖url',
};
wx.miniProgram.postMessage({ data: JSON.stringify(shareData) });

小程序

index.wxml

通過bindmessage綁定接收事件

<web-view bindmessage='getMessage' src='{{ src }}'></web-view>

index.js

// 獲取從網頁發送來的消息
getMessage(e) {
  const getMessage (e) {
  // data是多次postMessage的參數組成的數組
  const { data } = e.detail;
  // 需要取最后一條數據
  let shareMessage = data[data.length - 1];
  this.shareMessage = JSON.parse(shareMessage);
};

// 設置分享
onShareAppMessage(options) {
  return {
    title: this.shareMessage.title,
    path:  this.shareMessage.path,
    imageUrl: this.shareMessage.imageUrl,
  };
}

這樣一次定制化分享功能就完成了,但是postMessage方法只有特定場景可以獲取消息,所以如果非特定場景怎么獲取通信呢?

一種簡單的獲取通信的方法

我提供的解決方案可能不是最優的也不是最通用的,但是如果遇到了問題時可以作為一個備選方案。

1、場景還原

我們的小程序中有城市定位,第一次進入小程序需要選擇所在城市,選擇城市之后會緩存到本地,之后再次進入小程序不再需要重選選擇城市。功能如下截圖

web網頁與小程序間如何進行通信

選擇城市之后會在首頁右上角展示

web網頁與小程序間如何進行通信

由于城市選擇頁面和首頁都是通過web-view內嵌小程序的方式,所以顯然在H5頁面中進入緩存,在小程序中是無法獲取到緩存信息的。

2、解決方案

解決方案很簡單,我跟后端的同伴溝通后,拜托他提供給我一個接口,把城市id和用戶信息關聯起來,這樣我就可以再用戶進行小程序的時候獲取用戶上次選擇的城市id,進而再小程序里面緩存處理,這樣用戶再次進入小程序的時候無需再次選擇城市

網頁

// 保存城市信息
const saveCityHandle = () => {
  saveCity({
    cityId: cityId,
    userId: userId,
  }).then(() => {});
};

小程序

獲取城市id之后通過wx.setStorageSync緩存下來,以便后續使用。

wx.login({
  success(res) {
    if (res.code) {
      wx.request({
        url: `${that.domain()}/getUserInfo`,
        data: {
          body: { jsCode: res.code },
        },
        success(res) {
          wx.setStorageSync('cityId', res.data.cityId);
        },
      });
    } else {
      console.log('登錄失敗!' + res.errMsg);
    }
  },
});

總結

“溫故而知新,可以為師矣。”

有時候回過頭來看看某些知識點,也許就會有新的思路,與君共勉。ヾ(?°?°?)??

一首小詩

看了一眼日期,發現12月,2021年最后一個月了,我之前寫過了一首小詩,有點符合我現在的心境,也有一些祝福送給自己也送給大家。

眼前是一扇窗,
窗外是變換的景色,
夜晚,
墨綠的樹,
散落燈光的高樓大廈,
疾馳的汽車,
或匆忙或悠閑的行人。

我好像記住了每一座樓宇,
卻不記得每一張面孔,
不變的建筑,
變換的路人。
今年,
有一些變化,
每一顆追求人生的心,
都值得期待,
每一個不舍的眼神,
笑容也無法遮掩。

致,
所有開發的伙伴,
一期一祈,
勿懷猶也,
幸福美好。

“web網頁與小程序間如何進行通信”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

web
AI

卢龙县| 哈巴河县| 武隆县| 长垣县| 冀州市| 寻乌县| 太和县| 临漳县| 汽车| 余庆县| 沈阳市| 日土县| 黄平县| 长汀县| 从江县| 金寨县| 浦北县| 静宁县| 开化县| 宁南县| 满城县| 新安县| 桂平市| 马尔康县| 楚雄市| 军事| 迭部县| 叶城县| 精河县| 华容县| 汝城县| 锦州市| 宁南县| 松阳县| 伊宁市| 射洪县| 法库县| 冕宁县| 交口县| 思茅市| 滦南县|