title: 騰訊物聯網項目完結篇(添加微信小程序)
tags: TencentOS
date: 2019-10-05 21:53:00
拖更日記
這是拖更了大概一個多月的視頻,主要記錄一下上次參加騰訊OS內測項目的完結篇
我個人是一個具有重度拖延症的一個人,所以8月份參加了比賽,當時也取得了二等獎的成績,但是其實最終的產品還未完成,心裏一直有疑慮,這不趕着國慶節假期,終於有時間作了最後的完善—》添加微信小程序
部分代碼參考網上的教程,具體通訊部分由自己編寫設計
視頻演示: https://www.bilibili.com/video/av70107007/
而且其中還遇到了一些問題,尤其是json解析的時候:
這個問題我卡了很久,JSON.parse這個api很挑剔,首先我發的json數據在騰訊雲是可以正常識別的,但是發給微信小程序就識別不了了,不是爲啥,最後我測試了一個多小時,最後發現,這貨對於json字符串有極其嚴格的要求,由於我發的數據上面結尾有空格,導致了最終的解析失敗,這也是我手動賦值消息卻可以正常解析的原因。
最後的解決方法: 用正則表達式把數據截取出來,再用json解析出來。 OJBK
MessageProcess: function(topic, payload) {
var that = this;
var payload_string = payload.toString();
console.log(topic);
if (topic == that.data.topic.HumdTopic) {
var msg_payload = payload_string.match(/(\S*)}/)[1];
msg_payload +="}"
console.log(payload_string + "數據類型爲:" + typeof (payload_string) + "長度:" + payload_string.length);
//var test_buffer = '{"temperature":26.9,"humidity":48.7,"light":2.0,"PM25":54.0,"wind_speed":0.0,"door":"close"}';
//var jsonObj = JSON.parse(test_buffer.toString());
//console.log(jsonObj);
var jsonObj = JSON.parse(msg_payload);
//var jsonObj = JSON.stringify(payload_string)
console.log(jsonObj.door);
that.setData({
'value.HumdValue': jsonObj.humidity,
'value.TempValue': jsonObj.temperature,
'value.PM25_value': jsonObj.PM25,
'value.G_value': jsonObj.light,
'value.F_value': jsonObj.wind_speed
})
}
if (topic == that.data.topic.TempTopic) {
that.setData({
})
}
},
最後的源碼和整個工程,可以在QQ羣獲得:476840321
好好學習,天天向上。