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