|
導讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。 這篇文章主要介紹了微信小程序 開發中遇到問題總結的相關資料,需要的朋友可以參考下微信小程序 開發中遇到問題總結 1.由于小程序wx.request()方法是異步的,在app.js執行ajax后,各分頁加載app.js的全局數據時,無法按順序加載。例: //app.js
App({
ajax:function(){
let that = this;
wx.request({
url: 'https://a.com/url.php',
method: 'GET',
success: function(e){
that.data = 123;
}
})
};
})
//content.js
let app = getApp()
Page({
getData: function(){;
app.ajax();
console.log(app.data); //undefined
}
})解決方法,使用Promise異步函數: //app.js
App({
ajax:function(){
let that = this;
let promise = new Promise(function(resolve, reject){
wx.request({
url: 'https://a.com/url.php',
method: 'GET',
success: function(e){
that.data = 123;
resolve();
}
})
});
};
})
//content.js
let app = getApp()
Page({
getData: function(){;
app.ajax().then(()=>{
console.log(app.data); //123
});
}
})2.圖片只能獲取原始寬高,無法獲取現有寬高。不過image標簽封裝了mode屬性,可以根據需求自行設置。 3.每個image標簽底部有一條透明間隔,非padding,非margin。在圖片前面做遮罩層時可能會被坑。 4.網絡請求必須部署https 5.配置tabBar時,list參數中的pagePath參數至少需要包含app.json里pages數組中的第一個路徑,否則會導致tabBar不顯示。 6.tabBar跳轉時無法帶參數,解決方法: //search.js
var app = getApp();
Page({
confirm: function(e){
//獲取數據,添加到全局
let val = e.detail.value;
app.searchWord = val;
this.jump();
},
jump: function(){
//跳轉tabBar
wx.switchTab({
url: '../index/index',
});
},
});
//index.js
var app = getApp();
Page({
onShow: function(e){
//獲取全局數據
let val = app.searchWord;
}
});
//需要傳遞參數的頁面在跳轉前將數據添加到app.js里。需要接受參數的頁面在onShow方法接受之前添加到app.js的數據。
7.小程序wx.request()方法請求的url必須是https開頭 8.wx.request()使用post方法請求時,還需要加上header,header[content-type]值為application/x-www-form-urlencoded。例: wx.request({
url: 'https://a.com/url.php',
data: {message: 123},
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function(e){
console.log(e)
}
});9.小程序無法加載html標簽,同時數據渲染也無法渲染wxml標簽(<view></view>等),可以使用wxParse.js來處理相關數據。 10.安卓無法渲染wx.request()請求的數據。 檢測返回的數據是否有BOM頭(3個字符的空白)。安卓的wx.request解析不會跳過BOM頭,導致數據返回的是字符串,而不是對象或者數組。 例: 返回的數據是:(3個字符的空白){a:1, b:2} 解析的數據是:'{a:1, b:2}'(字符串),而不是{a:1, b:2}(對象) 由于不是對象,模板渲染之類會無法正常進行。解決方法,后臺返回數據前去掉BOM頭就行。如果后臺不會去BOM頭,可以在前端去除,但是wx.request如果dataType缺省,會默認為json并自動解析,導致無法去除BOM頭。 解決方案: wx.request({
url: url,
method: 'GET',
dataType: 'txt',
success: function(e){
let json = e.data.trim();
let arr = JSON.parse(json);
}
});dataType改為json以外的格式,避免小程序自動解析json字符串,然后對返回的數據用 trim() 方法去掉空白,最后解析json字符串就行。 11.調試時多行省略(-webkit-line-clamp)正常,發布時多行省略無效。 解決方案:如果不想重新審核,讓后臺截斷就好 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持! 以上就是微信小程序 開發過程中出現的問題總匯的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!