微信小程序webview與VUE?H5實時通訊具體步驟
背景:
微信小程序、vue2搭建開發(fā)的H5頁面,需要實現(xiàn)實時通信
在微信小程序開發(fā)中,會遇到嵌套H5頁面,H5頁面需要向微信小程序發(fā)消息觸發(fā)微信小程序某個函數(shù)方法,微信開發(fā)文檔上寫的非常不清楚,導致踩了很多坑,該文章總結可直接使用方法。
在開發(fā)中 ,微信小程序內嵌webview,H5想要與微信小程序發(fā)消息,必須要使用微信文檔中的wx.miniProgram的方法,但想要在H5中使用該方法,必須需要引入JSSDK.js文件,官方其實并沒有給出明確的引入方式。
具體實現(xiàn)步驟
1、配置域名
首先想要實現(xiàn)通訊,我們webview中嵌套的H5必須要配置在微信公眾號開發(fā)平臺的業(yè)務域名
登錄微信公眾平臺-在管理-開發(fā)管理-開發(fā)設置-業(yè)務域名中配置我們訪問的H5(該權限需要小程序管理員才能配置)

2、SDK文件引入
在vue項目也就是我們H5項目中引入JSSDK 1.6.0,(目前是這個版本,具體可查看web-view | 微信開放文檔)
踩坑點:有很多文章寫的需要在根項目index.html文件中引入,類似

但是不知道為什么,我在這引入無法實現(xiàn)通訊
后來改用在需要操作的H5頁面上引入(這是我們的H5頁面),這樣引入就能調用wx.miniProgram里面的方法
mounted() {
this.$nextTick(() => {
const script = document.createElement("script");
script.src = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";
script.onload = () => {};
document.head.appendChild(script);
});
},
3、使用
H5實例:(注意使用wx.miniProgram.postMessage這個API會有限制:向小程序發(fā)送消息,會在以下特定時機觸發(fā)組件的message事件:小程序后退、組件銷毀、分享、復制鏈接)這些操作才會進行接收,所以我這里直接使用了navigateTo跳轉一個新的界面來接收傳遞過來的參數(shù)

<template>
<button @click="submitForm">按鈕</button>
</template>
<script>
import { Toast } from "vant";
export default {
mounted() {
this.$nextTick(() => {
const script = document.createElement("script");
script.src = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";
script.onload = () => {};
document.head.appendChild(script);
});
},
methods: {
submitForm() {
// 判斷 wx 是否存在(防止在瀏覽器中報錯)
if (typeof wx !== "undefined" && wx.miniProgram) {
wx.miniProgram.navigateTo({
url: "/pages/webview/pay?status=success&orderId=12345", //我這里直接使用了navigateTo做界面跳轉,并傳遞了參數(shù)
});
Toast("消息已發(fā)送給小程序");
} else {
Toast("當前不在小程序 web-view 環(huán)境,無法發(fā)送消息");
}
}
}
};
</script>
然后在我們的小程序pay.vue中可以這樣接收
<template>
<view></view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad(options) {
console.log(options)
},
}
</script>
4、注意點

在微信開發(fā)文檔中有寫明,wx.miniProgram.postMessage只有在特定時機才會觸發(fā)message事件,什么意思呢,就是我在H5頁面點擊了操作按鈕,向小程序發(fā)送了消息,這時候小程序并不會實時收到我的消息,而是在我 操作了webview或者上面協(xié)議幾種情況才會觸發(fā)小程序端的@message才會收到消息,他們的交互并不是實時的。
所以在實際業(yè)務中,要根據(jù)文檔靈活變通,例如我這里的交互是在H5頁面點擊操作需要跳轉到小程序內的某個頁面,我這里直接用的是wx.miniProgram.navigateTo,這時候就可以在新的界面接收H5傳遞過來的參數(shù)了。
總結
到此這篇關于微信小程序webview與VUE H5實時通訊的文章就介紹到這了,更多相關微信小程序與VUE H5實時通訊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue踩坑之Vue?Watch方法不能監(jiān)聽到數(shù)組或對象值的改變詳解
Vue 提供了一種更通用的方式來觀察和響應 Vue 實例上的數(shù)據(jù)變動:偵聽屬性,下面這篇文章主要給大家介紹了關于Vue踩坑之Vue?Watch方法不能監(jiān)聽到數(shù)組或對象值的改變的相關資料,需要的朋友可以參考下2022-04-04
vue 使用 vue-pdf 實現(xiàn)pdf在線預覽的示例代碼
這篇文章主要介紹了vue 使用 vue-pdf 實現(xiàn)pdf在線預覽的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
vue+scss+element-ui實現(xiàn)表格表頭斜杠一分為三方式
這篇文章主要介紹了vue+scss+element-ui實現(xiàn)表格表頭斜杠一分為三方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Vue3的el-table-column增加跳轉其他頁面的方法
文章介紹了如何在Vue3的el-table-column中增加跳轉其他頁面的功能,并提供了示例代碼和handleUpdate方法的源碼分析,感興趣的朋友跟隨小編一起看看吧2025-02-02
vue踩坑記-在項目中安裝依賴模塊npm install報錯
這篇文章主要介紹了vue踩坑記-在項目中安裝依賴模塊npm install報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
vue使用高德地圖實現(xiàn)添加點標記和獲取點擊位置信息的示例代碼
這篇文章主要介紹了vue使用高德地圖實現(xiàn)添加點標記和獲取點擊位置信息的示例代碼,文中補充介紹了高德vue-amap使用(一)標記點位獲取地址及經(jīng)緯度,本文結合示例代碼給大家介紹的非常詳細,需要的朋友參考下吧2024-01-01

