微信小程序開發(fā)文檔:https://www.w3cschool.cn/weixinapp/sp6z1q8q.html
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),津市企業(yè)網(wǎng)站建設(shè),津市品牌網(wǎng)站建設(shè),網(wǎng)站定制,津市網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,津市網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。小程序官方示例Demo
一、小程序的生命周期
?1.小程序啟動
小程序啟動之后,在?app.js
?定義的?App
?實(shí)例的?onLaunch
?回調(diào)會被執(zhí)行:
整個小程序只有一個 App 實(shí)例,是全部頁面共享的,App實(shí)例相當(dāng)于?android里的application。
?2.渲染界面
? 微信客戶端首先會根據(jù)page.json生成一個界面
接著客戶端就會裝載這個頁面的?WXML
?結(jié)構(gòu)和?WXSS
?樣式。最后客戶端會裝載?logs.js
?在渲染完界面之后,頁面實(shí)例就會收到一個?onLoad
?的回調(diào)(page.js),你可以在這個回調(diào)處理你的邏輯。??
二、綁定View的點(diǎn)擊事件
?通過bindtap='methodName',在js里實(shí)現(xiàn)點(diǎn)擊事件
????方法實(shí)現(xiàn)方式1 ????//?methodName:function(e){ ???? ????//?} ???? ????方法實(shí)現(xiàn)方式2 ????methodName(){ ????????wx.navigateTo({ ????????url:?'../net/net', ????????}) ????}?
三、頁面跳轉(zhuǎn)
添加新頁面
注意js文件里的page首字母要大寫 ? ?????
https://jingyan.baidu.com/article/6f2f55a1656e01b5b93e6c9e.html
//跨頁面?zhèn)髦?/p>
https://www.ifanr.com/minapp/878030
四、組件樣式
https://www.cnblogs.com/yang-shuai/p/6899430.html
1.CSS選擇器
1)標(biāo)簽選擇器
2)選擇器分組 (共享聲明)
3)派生選擇器? (標(biāo)簽的子級標(biāo)簽的樣式)
4)?id選擇器? (不針對具體的標(biāo)簽)
#選擇器名{}
5)?id選擇器結(jié)合派生選擇器
6) 類選擇器
.選擇器名{}
7)屬性選擇器
[屬性名]{}
8)? 屬性和值選擇器
[屬性名=屬性值]{}
? ?[屬性名~=屬性值]{}??????????//屬性包含屬性值
? ?[屬性名|=屬性值]{}??????????//屬性包含屬性值的另一種表現(xiàn)形式
標(biāo)簽名[] {}????????????????????????//具體標(biāo)簽的屬性選擇器
id選擇器與類選擇器的區(qū)別:
1)id選擇器一個wxml中只能出現(xiàn)一次,但是class可以多次。
2)類選擇器可以合并
也就是說class可以等于多個class的列表? 如何關(guān)聯(lián)樣式表:
@import "other.wxss";
2.布局? ?
Flex布局:https://blog.csdn.net/qq_26585943/article/details/79694792
所有的View都是一個Flex,可以設(shè)置作為父容器的屬性或作為子容器的屬性。
布局實(shí)戰(zhàn):https://blog.csdn.net/aoaoxiexie/article/details/53991432
五、網(wǎng)絡(luò)請求
https://blog.csdn.net/suixufeng/article/details/65445751
?
六、藍(lán)牙操作
https://www.cnblogs.com/qcloud1001/p/7717860.html
https://www.jianshu.com/p/1fc23fc7e5ce
七、變量
1) let與var定義變量的區(qū)別:https://www.jianshu.com/p/e62d4ee72a61
?2)變量定義
? ? 數(shù)組定義? 變量名:[]
對象定義? 變量名:{}
?3)變量賦值
https://blog.csdn.net/weixin_41991473/article/details/79927418
賦值異常:"Setting data field "content" to undefined is invalid" 錯誤,原因是賦值的值與變量的類型不一致。
七-2、方法
1)當(dāng)前js調(diào)用另外js的方法
var api = require("../demo/api_test/api_test.js");
? 調(diào)用api即可獲取api_test.js里定義的方法,但是api_test.js的方法先要聲明暴露出來。
? 2)當(dāng)前js調(diào)用當(dāng)前js的方法
? this.方法名(),直接使用方法名會報方法找不到。
3)wx.xx方法的callback里調(diào)用自定義的方法
直接調(diào)用會報錯:
你要調(diào)用的自己的自定義方法?not defined;at api callback function
如:
????????Page({ ????????????data:?{ ????????????? ????????????}, ????????????getConnectedDevices(){ ????????????????console.log('getConnectedDevices?start') ????????????????wx.getConnectedBluetoothDevices({ ????????????????services:?[], ????????????????success:?function(res)?{ ????????????????console.log('getConnectedDevices?success',res) ????????????????}, ????????????????fail:function(res){ ????????????????console.log('getConnectedDevices?fail',?res) ????????????????} ????????????????}) ????????????}, ???????????? ???????????initAdapter(){ ????????????var?that?=?this; ????????????console.log('initAdapter?start') ???????????? ????????????wx.openBluetoothAdapter({ ????????????success:?function(res)?{ ????????????console.log('initAdapter?succes',?res) ????????????that.getConnectedDevices(); ????????????}, ????????????fail:function(res){ ????????????console.log('initAdapter?fail',res) ????????????} ????????????}) },? ????????} ????????)上面,initAdapter方法里,如果直接調(diào)用getConnectedDevices就會報錯。但是用that在initAdaper方法賦值一下this再調(diào)用getConnectedDevices就正常。
? ?
八、數(shù)組
?合并清空數(shù)組? https://www.jianshu.com/p/cd08d01a1c9c
增刪改查????https://www.jb51.net/article/102160.htm
push和concat的區(qū)別:
https://blog.csdn.net/wangsf789/article/details/53466314
ArrayBuffer與Java數(shù)據(jù)類型
??http://www.majianwei.com/archives/6420
其實(shí)微信小程序與Java程序通訊,如果遇到了ArrayBuffer類型,JS可以將ArrayBuffer轉(zhuǎn)換成HexString類型,Java再將HexString轉(zhuǎn)byte[](也就是ArrayBuffer)。
八-1:對象
1.錯誤的賦值方法:
?對象內(nèi)部無法引用自身的屬性
smallFrame.push({???? ????"ST":?"33", ????"SN":?codetool.num2Hex(sn,1)?, ????"CTL":?calCTL(sendDataArray.length?-?1?-?i,?i?==?0???1?:?0), ????"LEN":?codetool.num2Hex(sendDataArray[i].length?/?2,1), ????"DATA":?sendDataArray[i], ????"BCC":?codetool.yihuo(this.SN?+?this.CTL?+?this.LEN?+?this.DATA), ????"FRAME":?(this.ST?+?this.SN?+?this.CTL?+?this.LEN?+?this.DATA?+?this.BCC) ????});正確的賦值方法:
for????(let?i?=0;i?2. 讀取一個undefined對象的屬性異常
??Cannot read property 'sendResultListener' of undefined
九、列表組件
https://www.cnblogs.com/yexiaochai/p/9431816.html
https://blog.csdn.net/qq_38614249/article/details/80913311
?點(diǎn)擊事件,通過自定義屬性傳值:
https://blog.csdn.net/qq_41999617/article/details/83449841
十:關(guān)鍵字
1)this和that:http://www.php.cn/xiaochengxu-353027.html
https://blog.csdn.net/lucky123star/article/details/77508360
在嵌套的方法里,一般不直接使用this??梢远x一個that=this,然后調(diào)用that。
2)在自定義的js里使用var that = this,然后調(diào)用that會提示undefined ?????
十一:工具類封裝
? 1)? http://www.wxapp-union.com/forum.php?mod=viewthread&tid=2461
2)? 模塊化:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/module.html?(官方)
? ? ?
?變量如何暴露: 定義方法返回變量,然后暴露方法。
注意js只能暴露方法,無法直接暴露變量,但是可以通過方法返回變量。
3)定義監(jiān)聽回調(diào)
形式1:監(jiān)聽對象為一個函數(shù)function
形式2:監(jiān)聽對象為一個對象?{},然后調(diào)用對象的相關(guān)函數(shù)。
https://www.cnblogs.com/bellagao/p/6305485.html
?4)wxml中使用自定義的函數(shù):https://blog.csdn.net/qq_35971258/article/details/85197664
?5)base64與arraybuffer互轉(zhuǎn):https://www.hishop.com.cn/xiaocx/show_48059.html
?6)
十二、微信小程序特殊語法:
1、KV傳參:
wx的某些api,傳入?yún)?shù),可能會提示:
??? ?
?如:
?
getBLEDeviceCharacteristics的第二個參數(shù)?serviceId,如果參數(shù)的類型不明確,就要用KV形式傳入?yún)?shù)。
十三:編碼
1.ArrayBuffer與字符串互轉(zhuǎn)
https://blog.csdn.net/xyzdwf/article/details/82220987
2.進(jìn)制轉(zhuǎn)換
https://blog.csdn.net/sinat_22038331/article/details/85861708
注意16進(jìn)制轉(zhuǎn)10進(jìn)制時,調(diào)用parseInt函數(shù),但是傳入的參數(shù)必須是以"0x"開頭的。否則會出現(xiàn)問題,如傳入1A,結(jié)果計算為1.
十四:異步處理
https://blog.csdn.net/txqd1989/article/details/79096598/
十五:下載
https://blog.csdn.net/csl125/article/details/79206525
十六:音頻
關(guān)于播放進(jìn)度獲取的問題
小程序的innerAudioContext的onTimeUpdate事件返回值為undefined
十七:Wifi
#######第3方庫:############
1.protobuf協(xié)議
https://blog.csdn.net/d7185540/article/details/85105758
?上面的方法可以把proto轉(zhuǎn)換成json,但是下面如何使用???
2.https://blog.csdn.net/zuochao_2013/article/details/54563993?(各種框架和源碼)
微信小程序之綁定點(diǎn)擊事件
https://blog.csdn.net/yanglei0917/article/details/70171921
吐司
https://blog.csdn.net/hedong_77/article/details/54948537
http://www.pianshen.com/article/7528213664/
調(diào)試
console.log(res),在開發(fā)工具上掃描“遠(yuǎn)程調(diào)試”按鈕生成的二維碼,即可在console里看見日志 。
羅盤Demo
https://cloud.tencent.com/developer/article/1367259
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。