摘要:問題有朋友問微信小程序文件時,會失敗分析事實上,微信小程序很多模塊都有不兼容現(xiàn)象。。。,被微信小程序初始化時,指針為空,處理避開這類訪問。
問題
有朋友問, 微信小程序require ("base64.js")文件時,會失敗,,,
分析事實上,微信小程序require很多JS模塊都有不兼容現(xiàn)象。。。先從base64.js這個模塊入手吧。
調(diào)試出錯點:
(function(global) { "use strict"; // existing version for noConflict() var _Base64 = global.Base64; // 這句出錯了...變量global的值是傳入的this指針值,this指針為空了. var version = "2.1.9"; // if node.js, we use Buffer var buffer;
調(diào)試了一下,主要現(xiàn)象
base64.js 代碼里面假定了this指定非空。微信小程序require調(diào)入進(jìn)來后,this指針為空,就會拋出異常。
對于微信小程序模塊化的機制與require,,參見本人寫的另一篇文字:關(guān)于微信小程序require機制的淺析
處理知道這個修改就較容易了:
兩處改動:
一 避免global為空指針
代碼頭部幾行 (function(global) { "use strict"; // existing version for noConflict() var _Base64 = global.Base64; var version = "2.1.9";
添加兩行改為
(function(global) { "use strict"; // existing version for noConflict() var _Base64 = global.Base64; var version = "2.1.9"; if (!global) global = {}
二 添加module.exports
文件尾部幾行 } // that"s it! if (global["Meteor"]) { Base64 = global.Base64; // for normal export in Meteor.js } })(this);
添加一行
} // that"s it! if (global["Meteor"]) { Base64 = global.Base64; // for normal export in Meteor.js } module.exports = global.Base64; })(this);
然后在微信小程序里面調(diào)用測試:
var base64 = require("../../utils/base64.js"); ... var srcstr = "不要問我從哪里來"; var base64str = base64.encode(srcstr); console.log(base64str); 輸出: 5LiN6KaB6Zeu5oiR5LuO5ZOq6YeM5p2l總結(jié)
類似兼容性處理方案:
1,因為目前微信小程序require機制,,并不容易自定義一個require函數(shù)去代替(內(nèi)存中模塊列表對象在閉包之中,不易訪問),所以通常做法是修改被加載的js模塊。
2,被微信小程序require初始化時,this指針為空,處理避開這類訪問。
3,js模塊中,盡可能按module.exports = ... 方式導(dǎo)出對象.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81033.html
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺得這面文章對你有幫助的話,可給我點個這里,謝謝最后,希望這篇文章對你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實習(xí),做微信小程序開發(fā)。最近工作遇到一個小問題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺得這面文章對你有幫助的話,可給我點個這里,謝謝最后,希望這篇文章對你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實習(xí),做微信小程序開發(fā)。最近工作遇到一個小問題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
摘要:微信小程序圖片上傳阿里云服務(wù)器也折騰了蠻久才解決的,所以特意去記錄一下。上傳失敗第四步源碼在這里如果覺得這面文章對你有幫助的話,可給我點個這里,謝謝最后,希望這篇文章對你有所幫助,真真確確是可以在微信小程序中上傳圖片到阿里云的。 本人今年6月份畢業(yè),最近剛在上海一家小公司實習(xí),做微信小程序開發(fā)。最近工作遇到一個小問題。 微信小程序圖片上傳阿里云服務(wù)器Oss也折騰了蠻久才解決的,所以特意...
摘要:文章有不當(dāng)之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號好好學(xué),獲取優(yōu)質(zhì)學(xué)習(xí)資源。一登錄流程圖二小程序客戶端獲取用戶信息非必填默認(rèn)為請求服務(wù)端的登錄接口臨時登錄憑證用戶非敏感信息簽名用戶敏感信息解密算法的向量調(diào)用服務(wù)端登錄接口 文章有不當(dāng)之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號:好好學(xué)java,獲取優(yōu)質(zhì)學(xué)習(xí)資源。 一、登錄流程圖 showImg(htt...
閱讀 1824·2021-09-28 09:46
閱讀 3143·2019-08-30 14:22
閱讀 1878·2019-08-26 13:36
閱讀 3343·2019-08-26 11:32
閱讀 2081·2019-08-23 16:56
閱讀 1151·2019-08-23 16:09
閱讀 1303·2019-08-23 12:55
閱讀 2148·2019-08-23 11:44