摘要:未使用微信如果網(wǎng)頁中未使用微信用戶在微信中打開網(wǎng)站可能會(huì)觸發(fā)這個(gè)錯(cuò)誤,目前看來只有忽略。關(guān)于微信支付方法監(jiān)聽事件之后再進(jìn)行下一步操作方法直接使用文檔中的支付代碼,不要使用公眾號支付文檔里面的代碼。
Fundebug并沒有使用微信JS-SDK,然而卻收到了WeixinJSBridge is not defined的報(bào)錯(cuò):
我們的用戶也收到了類似的錯(cuò)誤報(bào)警,并且很多開發(fā)者都遇到類似的問題:
我的微信項(xiàng)目,沒有用到微信JS-SDK,但iphone部分手機(jī)點(diǎn)擊某些功能無效,后來加了window.onerror監(jiān)控,發(fā)現(xiàn)有Uncaught ReferenceError: WeixinJSBridge is not defined報(bào)錯(cuò);
從微信進(jìn)入支付中心直接喚起微信支付時(shí)有時(shí)會(huì)拋出ReferenceError:weixinJSBridge is not defined的異常;
使用AppCan生成Web/微信App版,調(diào)用微信JSAPI支付方式,提示W(wǎng)eixinJSBridge內(nèi)置對象undefined;
......
由此可見,這是一個(gè)非常普遍的問題。但是如果沒有在測試階段沒有遇到過,然后又沒有做線上錯(cuò)誤監(jiān)控的話,就很難發(fā)現(xiàn)這個(gè)問題。我們在這里將這個(gè)錯(cuò)誤進(jìn)行一些分析,讓大家少走彎路。
什么是微信JS-SDK?這里引用官方文檔:
微信JS-SDK是微信公眾平臺面向網(wǎng)頁開發(fā)者提供的基于微信內(nèi)的網(wǎng)頁開發(fā)工具包。通過使用微信JS-SDK,網(wǎng)頁開發(fā)者可借助微信高效地使用拍照、選圖、語音、位置等手機(jī)系統(tǒng)的能力,同時(shí)可以直接使用微信分享、掃一掃、卡券、支付等微信特有的能力,為微信用戶提供更優(yōu)質(zhì)的網(wǎng)頁體驗(yàn)。Q&A
微信內(nèi)置瀏覽器會(huì)有WeixinJSBridge,但是需要一定的加載時(shí)間。
微信webview注入鉤子有時(shí)序問題:在WeixinJSBridge還未注入之前,就已經(jīng)成功注入其它依賴于WeixinJSBridge的其它XX模塊。在XX模塊中調(diào)用WeixinJSBridge就會(huì)失敗。
如何解決?如果你開發(fā)一款移動(dòng)應(yīng)用,必不可少要考慮分享到微信的功能;如果你開發(fā)網(wǎng)頁,那么用戶之間的分享更多的也是通過微信。那么這個(gè)問題到底有多嚴(yán)重,如何解決也變得至關(guān)重要。
如果網(wǎng)頁中未使用微信JS-SDK, 用戶在微信中打開網(wǎng)站可能會(huì)觸發(fā)這個(gè)錯(cuò)誤,目前看來只有忽略。因?yàn)槭俏⑿臞S-SDK自身的問題,我們也無法控制。
方法1
監(jiān)聽ready事件之后再進(jìn)行下一步操作
if (typeof window.WeixinJSBridge == "undefined") { $(document).on("WeixinJSBridgeReady", function() { $("#weiXinPay").click(); }); } else { $("#weiXinPay").click(); }
方法2
直接使用JS-SDK文檔中的支付代碼,不要使用公眾號支付文檔里面的代碼。具體請參考微信JS-SDK說明文檔 - 微信支付
PS: 關(guān)于這個(gè)問題的帖子從2014年開始就有了,然而問題依然存在,希望微信的同學(xué)能夠給出官方的解決方案。
參考鏈接Uncaught ReferenceError: WeixinJSBridge is not defined
Uncaught ReferenceError: WeixinJSBridge is not defined問題
微信支付問題:Uncaught ReferenceError: WeixinJSBridge is not defined
傳說中的WeixinJSBridge和微信rest接口
監(jiān)聽wxbridge加載后再喚起微信支付
關(guān)于FundebugFundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實(shí)時(shí)BUG監(jiān)控。 自從2016年雙十一正式上線,F(xiàn)undebug累計(jì)處理了7億+錯(cuò)誤事件,得到了Google、360、金山軟件、百姓網(wǎng)等眾多知名用戶的認(rèn)可。歡迎免費(fèi)試用!
版權(quán)聲明轉(zhuǎn)載時(shí)請注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2017/02/18/weixinjsbridge-is-not-defined/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/8966.html
摘要:目前正在寫一個(gè)微信公眾號的小項(xiàng)目,記錄一下遇到的問題和解決方法主要是前端。前端提交時(shí)使用,在后端再取出對應(yīng)的微信支付看了下文檔,以前是需要用喚起支付,而現(xiàn)在則是把微信內(nèi)置到了微信的瀏覽器中。 目前正在寫一個(gè)微信公眾號的小項(xiàng)目,記錄一下遇到的問題和解決方法(主要是前端)。內(nèi)容持續(xù)更新中~ 主要實(shí)現(xiàn) 前后端分離前端為 SPA 單頁面使用微信的JSSDK微信支付 技術(shù)方案 后端使用 php ...
摘要:目前正在寫一個(gè)微信公眾號的小項(xiàng)目,記錄一下遇到的問題和解決方法主要是前端。前端提交時(shí)使用,在后端再取出對應(yīng)的微信支付看了下文檔,以前是需要用喚起支付,而現(xiàn)在則是把微信內(nèi)置到了微信的瀏覽器中。 目前正在寫一個(gè)微信公眾號的小項(xiàng)目,記錄一下遇到的問題和解決方法(主要是前端)。內(nèi)容持續(xù)更新中~ 主要實(shí)現(xiàn) 前后端分離前端為 SPA 單頁面使用微信的JSSDK微信支付 技術(shù)方案 后端使用 php ...
摘要:不同瀏覽器下的限制策略和方案的整理端瀏覽器的限制策略和應(yīng)對方案使用在端測試的瀏覽器包括瀏覽器瀏覽器瀏覽器瀏覽器限制策略內(nèi)容參考自年月份發(fā)布的正式關(guān)掉了聲音自動(dòng)播放靜音自動(dòng)播放總是允許的。 不同瀏覽器下 autoplay 的限制策略和方案的整理 PC 端瀏覽器的限制策略 和 應(yīng)對方案 使用 Mac 在 PC 端測試的瀏覽器包括 Chrome 瀏覽器 Safari 瀏覽器 Firefox...
摘要:步入正題吧身份認(rèn)證網(wǎng)頁授權(quán)登陸企業(yè)微信提供了的授權(quán)登陸方式,可以讓從企業(yè)微信終端打開網(wǎng)頁獲取成員的身份信息,從而避免登陸環(huán)節(jié)。 在開發(fā)之前,最好先過一遍官方的API,不然很難往下進(jìn)行。企業(yè)微信API 先介紹幾個(gè)基本的概念: cropid 每個(gè)企業(yè)都擁有一個(gè)唯一的cropid,要獲取次信息可在管理后臺我的企業(yè)-企業(yè)信息下查看企業(yè)ID(這個(gè)需要管理員權(quán)限的) userid 每個(gè)成員都有一...
閱讀 3466·2023-04-26 00:39
閱讀 4073·2021-09-22 10:02
閱讀 2555·2021-08-09 13:46
閱讀 1108·2019-08-29 18:40
閱讀 1455·2019-08-29 18:33
閱讀 781·2019-08-29 17:14
閱讀 1523·2019-08-29 12:40
閱讀 2983·2019-08-28 18:07