1、網絡:html
一、網絡相關API說明 【1】服務器域名配置 《1》簡介 每一個微信小程序須要事先設置一個通信域名,小程序能夠跟指定的域名與進行網絡通訊。包括普通 HTTPS 請求(request)、上傳文件(uploadFile)、下載文件(downloadFile) 和 WebSocket 通訊(connectSocket)node
《2》配置流程 小程序後臺 —> 開發設置 —> 服務器域名 配置注意事項: • 域名只支持 https (request、uploadFile、downloadFile) 和 wss (connectSocket) 協議; • 域名不能使用 IP 地址或 localhost; • 域名必須通過 ICP 備案; · 出於安全考慮,api.weixin.qq.com 不能被配置爲服務器域名,相關API也不能在小程序內調用。**開發者應將 appsecret 保存到後臺服務器中,經過服務器使用 appsecret 獲取 accesstoken,並調用相關 API; • 對於每一個接口,分別能夠配置最多 20 個域名 • 《3》HTTPS 證書 小程序必須使用 HTTPS 請求。小程序內會對服務器域名使用的 HTTPS 證書進行校驗,若是校驗失敗,則請求不能成功發起。因爲系統限制,不一樣平臺對於證書要求的嚴格程度不一樣。爲了保證小程序的兼容性,建議開發者按照最高標準進行證書配置,並使用相關工具檢查現有證書是否符合要求。 證書配置要求: • HTTPS 證書必須有效。證書必須被系統信任,部署SSL證書的網站域名必須與證書頒發的域名一致,證書必須在有效期內; • iOS 不支持自簽名證書; • iOS 下證書必須知足蘋果 App Transport Security (ATS) 的要求; • TLS 必須支持 1.2 及以上版本。部分舊 Android 機型還未支持 TLS 1.2,請確保 HTTPS 服務器的 TLS 版本支持1.2及如下版本; • 部分 CA 可能不被操做系統信任,請開發者在選擇證書時注意小程序和各系統的相關通告。 • 《4》跳過域名校驗 在微信開發者工具中,能夠臨時開啓 開發環境不校驗請求域名、TLS版本及HTTPS證書 選項,跳過服務器域名的校驗。此時,在微信開發者工具中及手機開啓調試模式時,不會進行服務器域名的校驗。在服務器域名配置成功後,建議開發者關閉此選項進行開發,並在各平臺下進行測試,以確認服務器域名配置正確。算法
【2】關於請求 • 默認超時時間和最大超時時間都是 60s • request、uploadFile、downloadFile 的最大併發限制是 10 個 • 網絡請求的 referer header 不可設置。其格式固定爲 servicewechat.com/{appid}/{ve… {appid} 爲小程序的 appid,{version} 爲小程序的版本號,版本號爲 0 表示爲開發版、體驗版以及審覈版本,版本號爲 devtools 表示爲開發者工具,其他爲正式版本。 • 小程序進入後臺運行後(非置頂聊天),若是 5s 內網絡請求沒有結束,會回調錯誤信息 fail interrupted;在回到前臺以前,網絡請求接口調用都會沒法調用。json
【3】關於服務器返回 《1》返回值鍵值編碼 建議服務器返回值使用 UTF-8 編碼。對於非 UTF-8 編碼,小程序會嘗試進行轉換,可是會有轉換失敗的可能 小程序會自動對BOM頭進行過濾 《2》回調 只要成功接收到服務器返回,不管statusCode是多少,都會進入success回調。請開發者根據業務邏輯對返回值進行判斷canvas
二、發起請求 wx.request(OBJECT):發起網絡請求小程序
三、上傳,下載 wx.uploadFile(OBJECT):將本地資源上傳到開發者服務器 wx.downloadFile(OBJECT):下載文件資源到本地微信小程序
四、WebSocket wx.connectSocket(OBJECT):WebSocket 鏈接 wx.onSocketOpen(CALLBACK):監聽WebSocket鏈接打開事件 wx.onSocketError(CALLBACK):監聽WebSocket錯誤 wx.sendSocketMessage(OBJECT):經過 WebSocket 鏈接發送數據 wx.onSocketMessage(CALLBACK):監聽WebSocket接受到服務器的消息事件 wx.closeSocket(OBJECT):關閉 WebSocket 鏈接 wx.onSocketClose(CALLBACK):監聽WebSocket關閉 SocketTask:WebSocket 任務,可經過 wx.connectSocket() 接口建立返回api
2、媒體:數組
一、圖片 wx.chooseImage(OBJECT):從本地相冊選擇圖片或使用相機拍照 wx.previewImage(OBJECT):預覽圖片 wx.getImageInfo(OBJECT):獲取圖片信息,假若爲網絡圖片,需先配置download域名才能生效 wx.saveImageToPhotosAlbum(OBJECT):保存圖片到系統相冊緩存
二、錄音 wx.startRecord(OBJECT):開始錄音 wx.stopRecord():主動調用中止錄音 注意:括號爲空表示沒有參數
三、錄音管理 wx.getRecorderManager():獲取全局惟一的錄音管理器 recorderManager
四、音頻播放控制 wx.playVoice(OBJECT):開始播放語音 wx.pauseVoice():暫停正在播放的語音 wx.stopVoice():結束播放語音
五、音樂播放控制 wx.getBackgroundAudioPlayerState(OBJECT):獲取後臺音樂播放狀態。 wx.playBackgroundAudio(OBJECT):使用後臺播放器播放音樂 wx.pauseBackgroundAudio():暫停播放音樂 wx.seekBackgroundAudio(OBJECT):控制音樂播放進度 wx.stopBackgroundAudio():中止播放音樂 wx.onBackgroundAudioPlay(CALLBACK):監聽音樂播放 wx.onBackgroundAudioPause(CALLBACK):監聽音樂暫停 wx.onBackgroundAudioStop(CALLBACK):監聽音樂中止
六、背景音頻播放管理 wx.getBackgroundAudioManager():獲取全局惟一的背景音頻管理器 backgroundAudioManager
七、音頻組件控制 wx.createAudioContext(audioId, this):建立並返回 audio 上下文 audioContext 對象。在自定義組件下,第二個參數傳入組件實例this,以操做組件內
八、視頻 wx.chooseVideo(OBJECT):拍攝視頻或從手機相冊中選視頻,返回視頻的臨時文件路徑。 wx.saveVideoToPhotosAlbum(OBJECT):保存視頻到系統相冊
九、視頻組件控制 wx.createVideoContext(videoId, this):建立並返回 video 上下文 videoContext 對象。在自定義組件下,第二個參數傳入組件實例this,以操做組件內<video/組件。
十、相機組件控制 wx.createCameraContext(this):建並返回 camera 上下文 cameraContext 對象,cameraContext 與頁面的 camera 組件綁定,一個頁面只能有一個camera,經過它能夠操做對應的 組件。 在自定義組件下,第一個參數傳入組件實例this,以操做組件內 組件
十一、實時音視頻 wx.createLivePlayerContext(domId, this):操做對應的 組件。 建立並返回 live-player 上下文 LivePlayerContext 對象。在自定義組件下,第二個參數傳入組件實例this,以操做組件內 組件 wx.createLivePusherContext():建立並返回 live-pusher 上下文 LivePusherContext 對象,LivePusherContext 與頁面的 組件綁定,一個頁面只能有一個 live-pusher,經過它能夠操做對應的 組件。 在自定義組件下,第一個參數傳入組件實例this,以操做組件內 組件
十二、動態加載字體 wx.loadFontFace(OBJECT):動態加載網絡字體,文件地址需爲下載類型。IOS下僅支持https格式文件地址。
3、文件:
一、普通操做 wx.saveFile(OBJECT):保存文件到本地 wx.getFileInfo(OBJECT):獲取文件信息 wx.getSavedFileList(OBJECT):獲取本地已保存的文件列表 wx.getSavedFileInfo(OBJECT):獲取本地文件的文件信息 wx.removeSavedFile(OBJECT):刪除本地存儲的文件 wx.openDocument(OBJECT):新開頁面打開文檔,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx
二、文件管理器 FileSystemManager:文件管理器 FileSystemManager wx.getFileSystemManager():獲取全局惟一的文件管理器 FileSystemManager.appendFile(Object object):在文件結尾追加內容 FileSystemManager.access(Object object):判斷文件/目錄是否存在 FileSystemManager.accessSync(string path):FileSystemManager.access 的同步版本 FileSystemManager.appendFileSync(string filePath, string|ArrayBuffer data, string encoding):FileSystemManager.appendFile 的同步版本 FileSystemManager.copyFile(Object object):複製文件 FileSystemManager.copyFileSync(string srcPath, string destPath):FileSystemManager.copyFile的同步版本 FileSystemManager.getSavedFileList(Object object):獲取該小程序下已保存的本地緩存文件列表 FileSystemManager.getFileInfo(Object object):獲取該小程序下的本地臨時文件或本地緩存文件信息 FFileSystemManager.mkdir(Object object):建立目錄 FileSystemManager.mkdirSync(string dirPath):FileSystemManager.mkdir 的同步版本 FileSystemManager.removeSavedFile(Object object):刪除該小程序下已保存的本地緩存文件 FileSystemManager.readFileSync(string filePath, string encoding):FileSystemManager.readFile的同步版本 FileSystemManager.renameSync(string oldPath, string newPath):FileSystemManager.rename 的同步版本 FileSystemManager.rmdirSync(string dirPath):FileSystemManager.rmdir 的同步版本 FileSystemManager.readdir(Object object):讀取目錄內文件列表 FileSystemManager.rename(Object object):重命名文件,能夠把文件從 oldPath 移動到 newPath FileSystemManager.readFile(Object object):讀取本地文件內容 FileSystemManager.rmdir(Object object):刪除目錄 FileSystemManager.readdirSync(string dirPath):FileSystemManager.readdir 的同步版本 FileSystemManager.saveFile(Object object):保存臨時文件到本地。此接口會移動臨時文件,所以調用成功後,tempFilePath 將不可用。 FileSystemManager.saveFileSync(string tempFilePath, string filePath):FileSystemManager.saveFile 的同步版本 FileSystemManager.stat(Object object):獲取文件 Stats 對象 FileSystemManager.statSync(string path):FileSystemManager.stat 的同步版本 Stats:描述文件狀態的對象 Stats.isDirectory():判斷當前文件是否一個目錄 Stats.isFile():判斷當前文件是否一個普通文件 FileSystemManager.unlink(Object object):刪除文件 FileSystemManager.unzip(Object object):解壓文件 FileSystemManager.unlinkSync(string filePath):FileSystemManager.unlink 的同步版本 FileSystemManager.writeFile(Object object):寫文件 FileSystemManager.writeFileSync(string filePath, string|ArrayBuffer data, string encoding):FileSystemManager.writeFile 的同步版本
4、數據緩存:
一、簡介 每一個微信小程序均可以有本身的本地緩存,能夠經過 wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)能夠對本地緩存進行設置、獲取和清理。同一個微信用戶,同一個小程序 storage 上限爲 10MB。localStorage 以用戶維度隔離,同一臺設備上,A 用戶沒法讀取到 B 用戶的數據。 注意事項: 若是用戶儲存空間不足,咱們會清空最近最久未使用的小程序的本地緩存。咱們不建議將關鍵信息所有存在 localStorage,以防儲存空間不足或用戶換設備的狀況。
二、本地緩存 wx.setStorage(OBJECT):將數據存儲在本地緩存中指定的 key 中,會覆蓋掉原來該 key 對應的內容,這是一個異步接口。 wx.setStorageSync(KEY,DATA):將 data 存儲在本地緩存中指定的 key 中,會覆蓋掉原來該 key 對應的內容,這是一個同步接口。 wx.getStorage(OBJECT):從本地緩存中異步獲取指定 key 對應的內容 wx.getStorageSync(KEY):從本地緩存中同步獲取指定 key 對應的內容 wx.getStorageInfo(OBJECT):異步獲取當前storage的相關信息 wx.getStorageInfoSync:同步獲取當前storage的相關信息 wx.removeStorage(OBJECT):從本地緩存中異步移除指定 key wx.removeStorageSync(KEY):從本地緩存中同步移除指定 key wx.clearStorage():清理本地數據緩存 wx.clearStorageSync():同步清理本地數據緩存 注意:本地數據存儲的大小限制爲 10MB
5、位置:
一、獲取位置 wx.getLocation(OBJECT):獲取當前的地理位置、速度。當用戶離開小程序後,此接口沒法調用,須要用戶受權 scope.userLocation wx.chooseLocation(OBJECT):打開地圖選擇位置,須要用戶受權 scope.userLocation。
二、查看位置 wx.openLocation(OBJECT):使用微信內置地圖查看位置,須要用戶受權 scope.userLocation
三、地圖組件控制 wx.createMapContext(mapId, this):建立並返回 map 上下文 mapContext 對象。在自定義組件下,第二個參數傳入組件實例this,以操做組件內
6、設備:
一、系統信息 wx.getSystemInfo(OBJECT):獲取系統信息 wx.getSystemInfoSync():獲取系統信息同步接口 wx.canIUse(String):判斷小程序的API,回調,參數,組件等是否在當前版本可用。
二、內存 wx.onMemoryWarning(callback):監聽內存不足的告警事件,Android下有告警等級劃分,只有LOW和CRITICAL會回調開發者;iOS無等級劃分。
三、網絡狀態 wx.getNetworkType(OBJECT):獲取網絡類型 wx.onNetworkStatusChange(CALLBACK):監聽網絡狀態變化
四、加速度計 wx.onAccelerometerChange(CALLBACK):監聽加速度數據,頻率:5次/秒,接口調用後會自動開始監聽,可以使用 wx.stopAccelerometer 中止監聽。 wx.startAccelerometer(OBJECT):開始監聽加速度數據 wx.stopAccelerometer(OBJECT):中止監聽加速度數據
五、羅盤 wx.onCompassChange(CALLBACK):監聽羅盤數據,頻率:5次/秒,接口調用後會自動開始監聽,可以使用wx.stopCompass中止監聽 wx.startCompass(OBJECT):開始監聽羅盤數據 wx.stopCompass(OBJECT):中止監聽羅盤數據
六、撥打電話 wx.makePhoneCall(OBJECT):撥打電話
七、掃碼 wx.scanCode(OBJECT):調起客戶端掃碼界面,掃碼成功後返回對應的結果
八、剪貼板 wx.setClipboardData(OBJECT):設置系統剪貼板的內容 wx.getClipboardData(OBJECT):獲取系統剪貼板內容
九、藍牙 wx.openBluetoothAdapter(OBJECT):初始化小程序藍牙模塊,生效週期爲調用wx.openBluetoothAdapter至調用wx.closeBluetoothAdapter或小程序被銷燬爲止。 wx.closeBluetoothAdapter(OBJECT):關閉藍牙模塊,使其進入未初始化狀態。 wx.getBluetoothAdapterState(OBJECT):獲取本機藍牙適配器狀態 wx.onBluetoothAdapterStateChange(CALLBACK):監聽藍牙適配器狀態變化事件 wx.startBluetoothDevicesDiscovery(OBJECT):開始搜尋附近的藍牙外圍設備 wx.stopBluetoothDevicesDiscovery(OBJECT):中止搜尋附近的藍牙外圍設備 wx.getBluetoothDevices(OBJECT):獲取在小程序藍牙模塊生效期間全部已發現的藍牙設備,包括已經和本機處於鏈接狀態的設備 wx.onBluetoothDeviceFound(CALLBACK):監聽尋找到新設備的事件 wx.getConnectedBluetoothDevices(OBJECT):根據 uuid 獲取處於已鏈接狀態的設備 wx.createBLEConnection(OBJECT):鏈接低功耗藍牙設備 wx.closeBLEConnection(OBJECT):斷開與低功耗藍牙設備的鏈接 wx.getBLEDeviceServices(OBJECT):獲取藍牙設備全部 service(服務) wx.getBLEDeviceCharacteristics(OBJECT):獲取藍牙設備某個服務中的全部 characteristic(特徵值) wx.readBLECharacteristicValue(OBJECT):讀取低功耗藍牙設備的特徵值的二進制數據值 wx.writeBLECharacteristicValue(OBJECT):向低功耗藍牙設備特徵值中寫入二進制數據 wx.notifyBLECharacteristicValueChange(OBJECT):啓用低功耗藍牙設備特徵值變化時的 notify 功能,訂閱特徵值 wx.onBLECharacteristicValueChange(CALLBACK):監聽低功耗藍牙設備的特徵值變化 藍牙錯誤碼列表: 10000:未初始化藍牙適配器 10001:當前藍牙適配器不可用 10002:沒有找到指定設備 10003:鏈接失敗 10004:沒有找到指定服務 10005:沒有找到指定特徵值 10006:當前鏈接已斷開 10007:當前特徵值不支持此操做 10008:其他全部系統上報的異常 10009:Android 系統特有,系統版本低於 4.3 不支持BLE
十、iBeacon wx.startBeaconDiscovery(OBJECT):開始搜索附近的iBeacon設備 wx.stopBeaconDiscovery(OBJECT):中止搜索附近的iBeacon設備 wx.getBeacons(OBJECT):獲取全部已搜索到的iBeacon設備 wx.onBeaconUpdate(CALLBACK):監聽 iBeacon 設備的更新事件 wx.onBeaconServiceChange(CALLBACK):監聽 iBeacon 服務的狀態變化
十一、屏幕亮度 wx.setScreenBrightness(OBJECT):設置屏幕亮度 wx.getScreenBrightness(OBJECT):獲取屏幕亮度 wx.setKeepScreenOn(OBJECT):設置是否保持常亮狀態
十二、用戶截屏事件 wx.onUserCaptureScreen(CALLBACK):監聽用戶主動截屏事件,用戶使用系統截屏按鍵截屏時觸發此事件
1三、振動 wx.vibrateLong(OBJECT):使手機發生較長時間的振動(400ms) wx.vibrateShort(OBJECT):使手機發生較短期的振動(15ms)
1四、手機聯繫人 wx.addPhoneContact(OBJECT):調用後,用戶能夠選擇將該表單以「新增聯繫人」或「添加到已有聯繫人」的方式,寫入手機系統通信錄,完成手機通信錄聯繫人和聯繫方式的增長
1五、NFC wx.getHCEState(OBJECT):判斷當前設備是否支持 HCE 能力 wx.startHCE(OBJECT):初始化 NFC 模塊 wx.stopHCE(OBJECT):關閉 NFC 模塊,僅在安卓系統下有效。 wx.onHCEMessage(CALLBACK):監聽 NFC 設備的消息回調,並在回調中處理。 wx.sendHCEMessage(OBJECT):發送 NFC 消息,僅在安卓系統下有效。
1六、WiFi wx.startWifi(OBJECT):初始化 Wi-Fi 模塊 wx.stopWifi(OBJECT):關閉 Wi-Fi 模塊 wx.connectWifi(OBJECT):鏈接 Wi-Fi wx.getWifiList(OBJECT):請求獲取 Wi-Fi 列表,在 onGetWifiList 註冊的回調中返回 wifiList 數據 wx.onGetWifiList(CALLBACK):監聽在獲取到 Wi-Fi 列表數據時的事件,在回調中將返回 wifiList wx.setWifiList(OBJECT):iOS特有接口 在 onGetWifiList 回調後,利用接口設置 wifiList 中 AP 的相關信息 wx.onWifiConnected(CALLBACK):監聽鏈接上 Wi-Fi 的事件 wx.getConnectedWifi(OBJECT):獲取已鏈接中的 Wi-Fi 信息
7、界面:
一、交互反饋 wx.showToast(OBJECT):顯示消息提示框 wx.showLoading(OBJECT):顯示 loading 提示框, 需主動調用 wx.hideLoading 才能關閉提示框 wx.hideToast():隱藏消息提示框 wx.hideLoading():隱藏 loading 提示框 wx.showModal(OBJECT):顯示模態彈窗 wx.showActionSheet(OBJECT):顯示操做菜單
二、設置導航欄 wx.setNavigationBarTitle(OBJECT):動態設置當前頁面的標題 wx.showNavigationBarLoading():在當前頁面顯示導航條加載動畫 wx.hideNavigationBarLoading():隱藏導航條加載動畫 wx.setNavigationBarColor(OBJECT):設置導航欄背景顏色
三、設置tabbar wx.setTabBarBadge(OBJECT):爲 tabBar 某一項的右上角添加文本 wx.removeTabBarBadge(OBJECT):移除 tabBar 某一項右上角的文本 wx.showTabBarRedDot(OBJECT):顯示 tabBar 某一項的右上角的紅點 wx.hideTabBarRedDot(OBJECT):隱藏 tabBar 某一項的右上角的紅點 wx.setTabBarStyle(OBJECT):動態設置 tabBar 的總體樣式 wx.setTabBarItem(OBJECT):動態設置 tabBar 某一項的內容 wx.showTabBar(OBJECT):顯示 tabBar wx.showTabBar(OBJECT):隱藏 tabBar
四、設置窗口背景 backgroundColor:動態設置窗口的背景色 wx.setBackgroundTextStyle(OBJECT):動態設置下拉背景字體、loading 圖的樣式
五、設置置頂信息 wx.setTopBarText(OBJECT):動態設置置頂欄文字內容,只有當前小程序被置頂時能生效,若是當前小程序沒有被置頂,也能調用成功,可是不會當即生效,只有在用戶將這個小程序置頂後才換上設置的文字內容
六、導航 wx.navigateTo(OBJECT):保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack能夠返回到原頁面 wx.redirectTo(OBJECT):關閉當前頁面,跳轉到應用內的某個頁面 wx.switchTab(OBJECT):跳轉到 tabBar 頁面,並關閉其餘全部非 tabBar 頁面 wx.navigateBack(OBJECT):關閉當前頁面,返回上一頁面或多級頁面 wx.reLaunch(OBJECT):關閉全部頁面,打開到應用內的某個頁面
七、動畫 wx.createAnimation(OBJECT):建立一個動畫實例animation
八、位置 wx.pageScrollTo(OBJECT):將頁面滾動到目標位置
九、繪圖 【1】API接口 createCanvasContext:建立 canvas 繪圖上下文(指定 canvasId) createContext(不推薦使用):建立 canvas 繪圖上下文 drawCanvas(不推薦使用):進行繪圖 canvasToTempFilePath:導出圖片
【2】context 對象的方法列表 《1》顏色,樣式,陰影 《2》漸變 《3》線條樣式 《4》矩形 《5》路徑 《6》變形 《7》文字 《8》圖片 《9》混合 《10》其餘
【4】使用步驟 第一步:建立一個 Canvas 繪圖上下文 第二步:使用 Canvas 繪圖上下文進行繪圖描述 第三步:畫圖 wx.createCanvasContext(canvasId, this):建立 canvas 繪圖上下文(指定 canvasId) wx.createContext :建立並返回繪圖上下文(不推薦使用) drawCanvas:用所提供的 actions 在所給的 canvas-id 對應的 canvas 上進行繪圖(不推薦使用) wx.canvasToTempFilePath(OBJECT, this):把當前畫布指定區域的內容導出生成指定大小的圖片,並返回文件路徑。 wx.canvasGetImageData(OBJECT, this):返回一個數組,用來描述 canvas 區域隱含的像素數據 wx.canvasPutImageData(OBJECT, this):將像素數據繪製到畫布的方法 canvasContext.setFillStyle:設置填充色 canvasContext.setStrokeStyle:設置邊框顏色 canvasContext.setShadow:設置陰影樣式 canvasContext.createLinearGradient:建立一個線性的漸變顏色 canvasContext.createCircularGradient:建立一個圓形的漸變顏色 canvasContext.addColorStop:建立一個顏色的漸變點 canvasContext.setLineWidth:設置線條的寬度 canvasContext.setLineCap:設置線條的端點樣式 canvasContext.setLineJoin:設置線條的交點樣式 canvasContext.setLineDash:設置虛線樣式的方法 canvasContext.setMiterLimit:設置最大斜接長度,斜接長度指的是在兩條線交匯處內角和外角之間的距離, 當 setLineJoin() 爲 miter 時纔有效。超過最大傾斜長度的,鏈接處將以 lineJoin 爲 bevel 來顯示 canvasContext.rect:建立一個矩形 canvasContext.fillRect:填充一個矩形 canvasContext.strokeRect:畫一個矩形(非填充) canvasContext.clearRect:清除畫布上在該矩形區域內的內容 canvasContext.fill:對當前路徑中的內容進行填充。默認的填充色爲黑色 canvasContext.stroke:畫出當前路徑的邊框。默認顏色爲黑色 canvasContext.beginPath:開始建立一個路徑,須要調用fill或者stroke纔會使用路徑進行填充或描邊 canvasContext.closePath:關閉一個路徑 canvasContext.moveTo:把路徑移動到畫布中的指定點,不建立線條 canvasContext.lineTo:lineTo 方法增長一個新點,而後建立一條從上次指定點到目標點的線 canvasContext.arc:畫一條弧線 canvasContext.bezierCurveTo:建立三次方貝塞爾曲線路徑 canvasContext.quadraticCurveTo:建立二次貝塞爾曲線路徑 canvasContext.scale:在調用scale方法後,以後建立的路徑其橫縱座標會被縮放。屢次調用scale,倍數會相乘。 canvasContext.rotate:以原點爲中心,原點能夠用 translate方法修改。順時針旋轉當前座標軸。屢次調用rotate,旋轉的角度會疊加。 canvasContext.translate:對當前座標系的原點(0, 0)進行變換,默認的座標系原點爲頁面左上角 canvasContext.clip:clip() 方法從原始畫布中剪切任意形狀和尺寸 canvasContext.setFontSize:設置字體的字號 canvasContext.fillText:在畫布上繪製被填充的文本 canvasContext.setTextAlign:用於設置文字的對齊 canvasContext.setTextBaseline:用於設置文字的水平對齊 canvasContext.drawImage:繪製圖像到畫布 canvasContext.setGlobalAlpha:設置全局畫筆透明度 canvasContext.save:保存當前的繪圖上下文 canvasContext.restore:恢復以前保存的繪圖上下文 canvasContext.draw:將以前在繪圖上下文中的描述(路徑、變形、樣式)畫到 canvas 中 canvasContext.getActions:返回繪圖上下文的繪圖動做 (不推薦使用) canvasContext.clearActions:清空繪圖上下文的繪圖動做 (不推薦使用) canvasContext.measureText:測量文本尺寸信息,目前僅返回文本寬度 canvasContext.globalCompositeOperation:該屬性是設置要在繪製新形狀時應用的合成操做的類型。 canvasContext.arcTo:根據控制點和半徑繪製圓弧路徑 canvasContext.strokeText:給定的 (x, y) 位置繪製文本描邊的方法 canvasContext.lineDashOffset:設置虛線偏移量的屬性 canvasContext.createPattern:對指定的圖像建立模式的方法,可在指定的方向上重複元圖像 canvasContext.shadowBlur:設置陰影的模糊級別 canvasContext.shadowColor:設置陰影的顏色 canvasContext.shadowOffsetX:設置陰影相對於形狀在水平方向的偏移 canvasContext.shadowOffsetY:設置陰影相對於形狀在豎直方向的偏移 canvasContext.font:設置當前字體樣式的屬性 canvasContext.transform:使用矩陣屢次疊加當前變換的方法 canvasContext.transform:使用矩陣屢次疊加當前變換的方法 canvasContext.setTransform:使用矩陣從新設置(覆蓋)當前變換的方法
十、下拉刷新 Page.onPullDownRefresh():在 Page 中定義 onPullDownRefresh 處理函數,監聽該頁面用戶下拉刷新事件 wx.startPullDownRefresh(OBJECT):開始下拉刷新,調用後觸發下拉刷新動畫,效果與用戶手動下拉刷新一致 wx.stopPullDownRefresh():中止當前頁面下拉刷新
十一、WXML節點信息 wx.createSelectorQuery():返回一個SelectorQuery對象實例 selectorQuery.in(component):將選擇器的選取範圍更改成自定義組件component內 selectorQuery.select(selector):在當前頁面下選擇第一個匹配選擇器selector的節點,返回一個NodesRef對象實例,能夠用於獲取節點信息 selectorQuery.selectAll(selector):在當前頁面下選擇匹配選擇器selector的節點,返回一個NodesRef對象實例。 與selectorQuery.select(selector)不一樣的是,它選擇全部匹配選擇器的節點。 selectorQuery.selectViewport():選擇顯示區域,可用於獲取顯示區域的尺寸、滾動位置等信息,返回一個NodesRef對象實例。 nodesRef.boundingClientRect([callback]):添加節點的佈局位置的查詢請求,相對於顯示區域,以像素爲單位。其功能相似於DOM的getBoundingClientRect。返回值是nodesRef對應的selectorQuery。 nodesRef.scrollOffset([callback]):添加節點的滾動位置查詢請求,以像素爲單位。節點必須是scroll-view或者viewport。返回值是nodesRef對應的selectorQuery。 nodesRef.fields(fields, [callback]):獲取節點的相關信息,須要獲取的字段在fields中指定。返回值是nodesRef對應的selectorQuery。 selectorQuery.exec([callback]):執行全部的請求,請求結果按請求次序構成數組,在callback的第一個參數中返回。
十二、WXML節點佈局相交狀態 (節點佈局交叉狀態API可用於監聽兩個或多個組件節點在佈局位置上的相交狀態。這一組API經常能夠用於推斷某些節點是否能夠被用戶看見、有多大比例能夠被用戶看見)
wx.createIntersectionObserver([this], [options]):建立並返回一個 IntersectionObserver 對象實例 intersectionObserver.relativeTo(selector, [margins]):使用選擇器指定一個節點,做爲參照區域之一。 margins 能夠用來擴展(或收縮)參照節點佈局區域的邊界,可包含 left 、 right 、 top 、 bottom 四項。 intersectionObserver.relativeToViewport([margins]):指定頁面顯示區域做爲參照區域之一。 margins 能夠用來擴展(或收縮)參照節點佈局區域的邊界,可包含 left 、 right 、 top 、 bottom 四項。 intersectionObserver.observe(targetSelector, callback):指定目標節點並開始監聽相交狀態變化狀況。回調函數 callback 包含一個參數 result。 intersectionObserver.disconnect():中止監聽。回調函數將再也不觸發。
8、第三方平臺:
wx.getExtConfig(OBJECT):獲取第三方平臺自定義的數據字段。 wx.getExtConfigSync():獲取第三方平臺自定義的數據字段的同步接口。
9、開放接口:
一、登陸 wx.login(OBJECT):調用接口wx.login() 獲取臨時登陸憑證(code) 用戶數據的簽名驗證和加解密 《1》數據簽名校驗 《2》加密數據解密算法 《3》會話密鑰session_key有效性 wx.checkSession(OBJECT):校驗用戶當前session_key是否有效
二、受權 《1》獲取受權信息 《2》打開設置界面 《3》提早發起受權請求 wx.authorize(OBJECT):提早向用戶發起受權請求
三、用戶信息 【1】接口 wx.getUserInfo(OBJECT):一、當用戶未受權過,調用該接口將直接報錯,二、當用戶受權過,可使用該接口獲取用戶信息 getPhoneNumber(OBJECT):獲取微信用戶綁定的手機號,需先調用login接口 【2】UnionID機制說明 《1》簡介 若是開發者擁有多個移動應用、網站應用、和公衆賬號(包括小程序),可經過unionid來區分用戶的惟一性,由於只要是同一個微信開放平臺賬號下的移動應用、網站應用和公衆賬號(包括小程序),用戶的unionid是惟一的。換句話說,同一用戶,對同一個微信開放平臺下的不一樣應用,unionid是相同的。 《2》UnionID獲取途徑 1.調用接口wx.getUserInfo,從解密數據中獲取UnionID。注意本接口須要用戶受權,請開發者妥善處理用戶拒絕受權後的狀況。 2.若是開發者賬號下存在同主體的公衆號,而且該用戶已經關注了該公衆號。開發者能夠直接經過wx.login獲取到該用戶UnionID,無須用戶再次受權。 3.若是開發者賬號下存在同主體的公衆號或移動應用,而且該用戶已經受權登陸過該公衆號或移動應用。開發者也能夠直接經過wx.login獲取到該用戶UnionID,無須用戶再次受權。 《3》微信開放平臺綁定小程序流程 登陸微信開放平臺 —》 賬號中心 —》 開發者資質認證 《4》綁定流程 登陸微信開放平臺 —》 管理中心 —》 公衆賬號 —》綁定公衆賬號
四、微信支付 wx.requestPayment(OBJECT):發起微信支付
五、接口調用憑證 【1】簡介 access_token 是全局惟一接口調用憑據,開發者調用各接口時都需使用 access_token,請妥善保存。access_token 的存儲至少要保留512個字符空間。access_token 的有效期目前爲2個小時,需定時刷新,重複獲取將致使上次獲取的 access_token 失效。
【2】access_token 的使用及生成方式說明: 《1》爲了保密 appsecrect,第三方須要一個 access_token 獲取和刷新的中控服務器。而其餘業務邏輯服務器所使用的 access_token 均來自於該中控服務器,不該該各自去刷新,不然會形成 access_token 覆蓋而影響業務; 《2》目前 access_token 的有效期經過返回的 expires_in 來傳達,目前是7200秒以內的值。中控服務器須要根據這個有效時間提早去刷新新 access_token。在刷新過程當中,中控服務器對外輸出的依然是老 access_token,此時公衆平臺後臺會保證在刷新短期內,新老 access_token 均可用,這保證了第三方業務的平滑過渡; 《3》access_token 的有效時間可能會在將來有調整,因此中控服務器不只須要內部定時主動刷新,還須要提供被動刷新 access_token 的接口,這樣便於業務服務器在 API 調用獲知 access_token 已超時的狀況下,能夠觸發 access_token 的刷新流程。
六、模板消息 【1】使用說明 步驟一:獲取模板ID(1.經過模版消息管理接口獲取模版ID,2.在微信公衆平臺手動配置獲取模版ID) 步驟二:頁面的