m8-mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -0
- package/bin/m8-mcp.js +2 -0
- package/dist/constants.js +1 -0
- package/dist/data/ejs-doc/api_audio/api_audio.md +225 -0
- package/dist/data/ejs-doc/api_auth/api_auth.md +256 -0
- package/dist/data/ejs-doc/api_contact/api_contact.md +295 -0
- package/dist/data/ejs-doc/api_contact/images/component_contact.jpg +0 -0
- package/dist/data/ejs-doc/api_device/api_device.md +761 -0
- package/dist/data/ejs-doc/api_event/api_event.md +244 -0
- package/dist/data/ejs-doc/api_global/api_global.md +440 -0
- package/dist/data/ejs-doc/api_io/api_io.md +369 -0
- package/dist/data/ejs-doc/api_navigator/api_navigator.md +654 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.backbtn.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.hide.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.hidestatus.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.leftarrowbtn.jpg +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtn.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.leftbtnimg.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.multititle.jpg +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtn2.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightbtnimg2.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.rightmenu.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.searchbar.png +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.subtitle.jpg +0 -0
- package/dist/data/ejs-doc/api_navigator/images/navigator.title.png +0 -0
- package/dist/data/ejs-doc/api_page/api_page.md +261 -0
- package/dist/data/ejs-doc/api_runtime/api_runtime.md +788 -0
- package/dist/data/ejs-doc/api_storage/api_storage.md +320 -0
- package/dist/data/ejs-doc/api_stream/api_stream.md +152 -0
- package/dist/data/ejs-doc/api_stream/images/body_multiform.jpg +0 -0
- package/dist/data/ejs-doc/api_ui/api_ui.md +836 -0
- package/dist/data/ejs-doc/api_ui/images/ui.popwindow.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_actionsheet.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_alert.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_confirm.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_pickDateTime.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_pickdate.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_pickmonth.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_picktime.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_poppicker.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_poppicker2.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_poppicker3.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_prompt.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_select.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_select2.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_select3.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_showdebugdialog.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_showwaiting.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_toast.png +0 -0
- package/dist/data/ejs-doc/api_ui/images/ui_toastAndEvent.png +0 -0
- package/dist/data/ejs-doc/api_util/api_util.md +615 -0
- package/dist/data/ejs-doc/api_util/images/util.playvideo.png +0 -0
- package/dist/data/ejs-doc/api_util/images/util.previmage.png +0 -0
- package/dist/data/ejs-doc/api_util/images/util.selectfile.png +0 -0
- package/dist/data/ejs-doc/api_util/images/util.selectimage.png +0 -0
- package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205.md +247 -0
- package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/345/210/227/350/241/250/350/257/246/346/203/205vue3.md +276 -0
- package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244.md +130 -0
- package/dist/data/m8mpdoc-develop/003-/345/205/270/345/236/213/346/241/210/344/276/213/003-/350/241/250/345/215/225/346/217/220/344/272/244vue3.md +115 -0
- package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/000-/346/240/270/345/277/203/346/226/271/346/263/225.md +398 -0
- package/dist/data/m8mpdoc-develop/005-/346/240/270/345/277/203/351/200/232/347/224/250Util/001-Ajax/344/270/216/346/226/207/344/273/266/344/270/212/344/274/240.md +456 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/000-charset.md +128 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/001-base64.md +142 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/002-date.md +210 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/004-math.md +85 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/006-sha1.md +21 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/007-sha256.md +36 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/008-storage.md +128 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/009-string.md +148 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/010-Util/346/211/251/345/261/225/346/214/207/345/215/227.md +76 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/011-cookie.md +59 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/012-util-sm.md +95 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-1.baseapi.md +76 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.network.md +202 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md +92 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-3.uiapi.md +412 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md +146 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-5.otherapi.md +137 -0
- package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/014-util-mpVerifyManager.md +363 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/000-/347/273/204/344/273/266/345/272/223/344/270/213/350/275/275/344/275/277/347/224/250.md +188 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/001-actionsheet/345/212/250/344/275/234/351/235/242/346/235/277.md +460 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/004-amap/345/234/260/345/233/276.md +285 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/005-button/346/214/211/351/222/256.md +211 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/008-cell/345/215/225/345/205/203/346/240/274.md +213 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/009-checkbox/345/244/215/351/200/211/346/241/206.md +501 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/010-circle/347/216/257/345/275/242/350/277/233/345/272/246/346/235/241.md +168 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/011-datepicker/346/227/245/346/234/237/351/200/211/346/213/251.md +617 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/013-field/350/276/223/345/205/245/346/241/206.md +539 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/015-form/350/241/250/345/215/225.md +999 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/018-header/345/244/264/351/203/250/345/257/274/350/210/252/346/240/217.md +150 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/019-icon/345/233/276/346/240/207.md +133 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/020-loading/345/212/240/350/275/275.md +117 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/021-noticebar/351/200/232/347/237/245/346/240/217.md +152 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/022-numberkeyboard/346/225/260/345/255/227/351/224/256/347/233/230.md +427 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/023-pagination/345/210/206/351/241/265.md +212 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/024-panel/351/235/242/346/235/277.md +85 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/025-passwordinput/345/257/206/347/240/201/350/276/223/345/205/245/346/241/206.md +175 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/026-picker/351/200/211/346/213/251/345/231/250.md +519 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/027-popup/345/274/271/345/207/272/345/261/202.md +152 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/028-progress/350/277/233/345/272/246/346/235/241.md +103 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/029-radio/345/215/225/351/200/211/346/241/206.md +285 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/030-rate/350/257/204/345/210/206.md +189 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/031-search/346/220/234/347/264/242.md +217 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/032-slider/346/273/221/345/235/227.md +166 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/033-stepper/346/255/245/350/277/233/345/231/250.md +340 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/035-swipecell/346/273/221/345/212/250/345/215/225/345/205/203/346/240/274.md +265 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/036-switch/345/274/200/345/205/263.md +196 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/037-switchcell/345/274/200/345/205/263/345/215/225/345/205/203/346/240/274.md +115 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/038-tag/346/240/207/350/256/260.md +232 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/039-treeselect/345/210/206/347/261/273/351/200/211/346/213/251.md +631 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/040-uploader/346/226/207/344/273/266/344/270/212/344/274/240.md +531 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/041-verifycode/351/252/214/350/257/201/347/240/201.md +111 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/042-minirefresh/344/270/213/346/213/211/345/210/267/346/226/260.md +337 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/043-layout/345/270/203/345/261/200.md +150 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/044-image/345/233/276/347/211/207.md +144 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/045-toast/350/275/273/346/217/220/347/244/272.md +429 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/046-calendar/346/227/245/345/216/206.md +467 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/047-area/347/234/201/345/270/202/345/214/272/351/200/211/346/213/251.md +295 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/048-tab/346/240/207/347/255/276/351/241/265.md +577 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/049-dialog/345/274/271/345/207/272/346/241/206.md +491 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/050-dropdownmenu/344/270/213/346/213/211/350/217/234/345/215/225.md +265 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/051-notify/346/266/210/346/201/257/351/200/232/347/237/245.md +203 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/052-overlay/351/201/256/347/275/251/345/261/202.md +139 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/053-collapse/346/212/230/345/217/240/351/235/242/346/235/277.md +199 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/054-grid/345/256/253/346/240/274.md +183 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/055-countdown/345/200/222/350/256/241/346/227/266.md +289 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/056-divider/345/210/206/345/211/262/347/272/277.md +97 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/057-empty/347/251/272/347/212/266/346/200/201.md +146 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/058-imagepreview/345/233/276/347/211/207/351/242/204/350/247/210.md +292 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/059-lazyload/346/207/222/345/212/240/350/275/275.md +120 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/060-skeleton/351/252/250/346/236/266/345/261/217.md +114 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/061-steps/346/255/245/351/252/244/346/235/241.md +119 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/062-sticky/347/262/230/346/200/247/345/270/203/345/261/200.md +208 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/063-indexbar/347/264/242/345/274/225/346/240/217.md +161 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/064-sidebar/344/276/247/350/276/271/345/257/274/350/210/252.md +248 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/065-tabbar/346/240/207/347/255/276/346/240/217.md +314 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/066-badge/345/276/275/346/240/207.md +162 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/067-popover/346/260/224/346/263/241/345/274/271/345/207/272/346/241/206.md +325 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/068-cascader/347/272/247/350/201/224/351/200/211/346/213/251.md +360 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/069-selectperson/351/200/211/344/272/272/347/273/204/344/273/266.md +595 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/070-swipe/350/275/256/346/222/255.md +262 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/071-/345/233/275/351/231/205/345/214/226.md +51 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/072-easycalendar/346/227/245/345/216/206.md +132 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/073-qrcode/344/272/214/347/273/264/347/240/201.md +1538 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/074-imagescale/345/233/276/347/211/207/350/243/201/345/211/252.md +261 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/075-dragsort/346/213/226/346/213/275/346/216/222/345/272/217.md +161 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/076-chart/345/233/276/350/241/250.md +381 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/077-rtc/351/237/263/350/247/206/351/242/221.md +531 -0
- package/dist/data/m8mpdoc-develop/009-UI/347/273/204/344/273/266/078-table/350/241/250/346/240/274.md +849 -0
- package/dist/data/m8mpdoc-develop/012-Mock/347/232/204/344/275/277/347/224/250/Mock/347/232/204/344/275/277/347/224/250.md +116 -0
- package/dist/data/standards/css-style.md +531 -0
- package/dist/data/standards/js-style.md +394 -0
- package/dist/data/standards/project-structure.md +325 -0
- package/dist/data/standards/vue-style.md +644 -0
- package/dist/index.js +1 -0
- package/dist/tools/search.js +1 -0
- package/dist/tools/standards.js +1 -0
- package/package.json +43 -0
package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-2.socketTask.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# 扩展-网络API
|
|
2
|
+
|
|
3
|
+
**SocketTask** 由 [Util.connectSocket()](./index.html?file=006-Util工具集/013-2.network) 接口创建。
|
|
4
|
+
|
|
5
|
+
**平台差异说明**
|
|
6
|
+
|
|
7
|
+
支付宝小程序没有明确的文档来具体说明这个对象,而是指向了 [Web Websocket](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket) 对象。
|
|
8
|
+
|
|
9
|
+
### SocketTask.onMessage(CALLBACK)
|
|
10
|
+
监听 WebSocket 接受到服务器的消息事件
|
|
11
|
+
|
|
12
|
+
**回调函数**
|
|
13
|
+
|
|
14
|
+
`Function`
|
|
15
|
+
|
|
16
|
+
WebSocket 接受到服务器的消息事件的回调函数
|
|
17
|
+
|
|
18
|
+
**回调函数中的参数**
|
|
19
|
+
|
|
20
|
+
`Object`
|
|
21
|
+
|
|
22
|
+
|属性|类型|说明|
|
|
23
|
+
|:-|:-|:-|
|
|
24
|
+
|data|String/ArrayBuffer|服务器返回的消息|
|
|
25
|
+
|
|
26
|
+
### SocketTask.send(OBJECT)
|
|
27
|
+
通过 WebSocket 连接发送数据
|
|
28
|
+
|
|
29
|
+
**参数**
|
|
30
|
+
|
|
31
|
+
|属性|类型|是否必填|说明|
|
|
32
|
+
|:-|:-|:-|:-|
|
|
33
|
+
|data|String/ArrayBuffer|是|需要发送的内容|
|
|
34
|
+
|success|Function|否|接口调用成功的回调函数|
|
|
35
|
+
|fail|Function|否|接口调用失败的回调函数|
|
|
36
|
+
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
|
|
37
|
+
|
|
38
|
+
### SocketTask.close(OBJECT)
|
|
39
|
+
关闭 WebSocket 连接
|
|
40
|
+
|
|
41
|
+
**参数**
|
|
42
|
+
|
|
43
|
+
|属性|类型|默认值|是否必填|说明|
|
|
44
|
+
|:-|:-|:-|:-|:-|
|
|
45
|
+
|code|Number|1000(表示正常关闭连接)|否|一个数字值表示关闭连接的状态号,表示连接被关闭的原因。|
|
|
46
|
+
|reason|String||否|一个可读的字符串,表示连接被关闭的原因。|
|
|
47
|
+
|success|Function||否|接口调用成功的回调函数|
|
|
48
|
+
|fail|Function||否|接口调用失败的回调函数|
|
|
49
|
+
|complete|Function||否|接口调用结束的回调函数(调用成功、失败都会执行)|
|
|
50
|
+
|
|
51
|
+
### SocketTask.onOpen(CALLBACK)
|
|
52
|
+
监听 WebSocket 连接打开事件
|
|
53
|
+
|
|
54
|
+
**回调函数**
|
|
55
|
+
|
|
56
|
+
`Function`
|
|
57
|
+
|
|
58
|
+
WebSocket 连接打开事件的回调函数
|
|
59
|
+
|
|
60
|
+
**回调函数中的参数**
|
|
61
|
+
|
|
62
|
+
`Object`
|
|
63
|
+
|
|
64
|
+
|属性|类型|说明|
|
|
65
|
+
|:-|:-|:-|
|
|
66
|
+
|data|String/ArrayBuffer|服务器返回的消息|
|
|
67
|
+
|
|
68
|
+
### SocketTask.onClose(CALLBACK)
|
|
69
|
+
监听 WebSocket 连接关闭事件
|
|
70
|
+
|
|
71
|
+
**回调函数**
|
|
72
|
+
|
|
73
|
+
`Function`
|
|
74
|
+
|
|
75
|
+
WebSocket 连接关闭事件的回调函数
|
|
76
|
+
|
|
77
|
+
### SocketTask.onError(CALLBACK)
|
|
78
|
+
监听 WebSocket 错误事件
|
|
79
|
+
|
|
80
|
+
**回调函数**
|
|
81
|
+
|
|
82
|
+
`Function`
|
|
83
|
+
|
|
84
|
+
WebSocket 错误事件的回调函数
|
|
85
|
+
|
|
86
|
+
**回调函数中的参数**
|
|
87
|
+
|
|
88
|
+
`Object`
|
|
89
|
+
|
|
90
|
+
|属性|类型|说明|
|
|
91
|
+
|:-|:-|:-|
|
|
92
|
+
|errMsg|String|错误信息|
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
# 扩展-界面 API
|
|
2
|
+
|
|
3
|
+
## 使用场景
|
|
4
|
+
|
|
5
|
+
使用到涉及界面的 API 场景。
|
|
6
|
+
|
|
7
|
+
### Util.createSelectorQuery()
|
|
8
|
+
|
|
9
|
+
`v8.3.17-beta.4`开始支持。
|
|
10
|
+
|
|
11
|
+
返回一个 `SelectorQuery` 对象实例。可以在这个实例上使用 `select` 等方法选择节点,并使用 `boundingClientRect` 等方法选择需要查询的信息。
|
|
12
|
+
|
|
13
|
+
**Tips:**
|
|
14
|
+
|
|
15
|
+
- 使用 `Util.createSelectorQuery()` 需要在生命周期 `mounted` 后进行调用。
|
|
16
|
+
- 默认需要使用到 `selectorQuery.in` 方法。
|
|
17
|
+
|
|
18
|
+
**平台差异说明**
|
|
19
|
+
|
|
20
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
21
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
22
|
+
| √ | √ | √ | √ |
|
|
23
|
+
|
|
24
|
+
#### SelectorQuery
|
|
25
|
+
|
|
26
|
+
查询节点信息的对象
|
|
27
|
+
|
|
28
|
+
##### selectorQuery.in(component)
|
|
29
|
+
|
|
30
|
+
将选择器的选取范围更改为自定义组件 `component` 内,返回一个 `SelectorQuery` 对象实例。(初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点)。
|
|
31
|
+
|
|
32
|
+
**代码示例**
|
|
33
|
+
|
|
34
|
+
```javascript
|
|
35
|
+
const query = Util.createSelectorQuery().in(this);
|
|
36
|
+
query
|
|
37
|
+
.select('#id')
|
|
38
|
+
.boundingClientRect((data) => {
|
|
39
|
+
console.log('得到布局位置信息' + JSON.stringify(data));
|
|
40
|
+
console.log('节点离页面顶部的距离为' + data.top);
|
|
41
|
+
})
|
|
42
|
+
.exec();
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**注意**
|
|
46
|
+
|
|
47
|
+
- 支付宝小程序不支持 in(component),使用无效果
|
|
48
|
+
|
|
49
|
+
##### selectorQuery.select(selector)
|
|
50
|
+
|
|
51
|
+
在当前页面下选择第一个匹配选择器 `selector` 的节点,返回一个 `NodesRef` 对象实例,可以用于获取节点信息。
|
|
52
|
+
|
|
53
|
+
**selector 说明:**
|
|
54
|
+
|
|
55
|
+
`selector` 类似于 CSS 的选择器,但仅支持下列语法。
|
|
56
|
+
|
|
57
|
+
- ID 选择器:`#the-id`
|
|
58
|
+
- class 选择器(可以连续指定多个):`.a-class.another-class`
|
|
59
|
+
- 子元素选择器:`.the-parent > .the-child`
|
|
60
|
+
- 后代选择器:`.the-ancestor .the-descendant`
|
|
61
|
+
- 跨自定义组件的后代选择器:`.the-ancestor >>> .the-descendant` (H5 暂不支持)
|
|
62
|
+
- 多选择器的并集:`#a-node, .some-other-nodes`
|
|
63
|
+
|
|
64
|
+
##### selectorQuery.selectAll(selector)
|
|
65
|
+
|
|
66
|
+
在当前页面下选择匹配选择器 `selector` 的所有节点,返回一个 `NodesRef` 对象实例,可以用于获取节点信息。
|
|
67
|
+
|
|
68
|
+
##### selectorQuery.selectViewport()
|
|
69
|
+
|
|
70
|
+
选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个 `NodesRef` 对象实例。
|
|
71
|
+
|
|
72
|
+
##### selectorQuery.exec(callback)
|
|
73
|
+
|
|
74
|
+
执行所有的请求。请求结果按请求次序构成数组,在 callback 的第一个参数中返回。
|
|
75
|
+
|
|
76
|
+
#### NodesRef
|
|
77
|
+
|
|
78
|
+
用于获取节点信息的对象
|
|
79
|
+
|
|
80
|
+
##### nodesRef.fields(object,callback)
|
|
81
|
+
|
|
82
|
+
获取节点的相关信息。第一个参数是节点相关信息配置(必选);第二参数是方法的回调函数,参数是指定的相关节点信息。
|
|
83
|
+
|
|
84
|
+
**object 参数说明**
|
|
85
|
+
|
|
86
|
+
| 字段名 | 类型 | 默认值 | 必填 | 说明 | 平台差异说明 |
|
|
87
|
+
| :------------ | :----------------- | :----- | :--- | :-------------------------------------------------------------------------------------------------------------------------------------- | :---------------- |
|
|
88
|
+
| id | Boolean | false | 否 | 是否返回节点 `id` | |
|
|
89
|
+
| dataset | Boolean | false | 否 | 是否返回节点 `dataset` | 微信小程序、H5 |
|
|
90
|
+
| rect | Boolean | false | 否 | 是否返回节点布局位置(`left` `right` `top` `bottom`) | |
|
|
91
|
+
| size | Boolean | false | 否 | 是否返回节点尺寸(`width` `height`) | |
|
|
92
|
+
| scrollOffset | Boolean | false | 否 | 是否返回节点的 `scrollLeft` `scrollTop`,节点必须是 `scroll-view` 或者 `viewport` | |
|
|
93
|
+
| properties | Array < string > | [] | 否 | 指定属性名列表,返回节点对应属性名的当前属性值(只能获得组件文档中标注的常规属性值,`id`、`class`、`style` 和事件绑定的属性值不可获取) | 仅 微信小程序支持 |
|
|
94
|
+
| computedStyle | Array < string > | [] | 否 | 指定样式名列表,返回节点对应样式名的当前值 | 仅微信小程序支持 |
|
|
95
|
+
| context | Boolean | false | 否 | 是否返回节点对应的 Context 对象 | 仅微信小程序支持 |
|
|
96
|
+
|
|
97
|
+
##### nodesRef.boundingClientRect(callback)
|
|
98
|
+
|
|
99
|
+
添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 `getBoundingClientRect`。返回 `NodesRef` 对应的 `SelectorQuery`。
|
|
100
|
+
|
|
101
|
+
**callback 返回参数**
|
|
102
|
+
|
|
103
|
+
| 属性 | 类型 | 说明 |
|
|
104
|
+
| ------- | ------ | ---------------- |
|
|
105
|
+
| id | String | 节点的 ID |
|
|
106
|
+
| dataset | Object | 节点的 dataset |
|
|
107
|
+
| left | Number | 节点的左边界坐标 |
|
|
108
|
+
| right | Number | 节点的右边界坐标 |
|
|
109
|
+
| top | Number | 节点的上边界坐标 |
|
|
110
|
+
| bottom | Number | 节点的下边界坐标 |
|
|
111
|
+
| width | Number | 节点的宽度 |
|
|
112
|
+
| height | Number | 节点的高度 |
|
|
113
|
+
|
|
114
|
+
##### nodesRef.scrollOffset(callback)
|
|
115
|
+
|
|
116
|
+
添加节点的滚动位置查询请求。以像素为单位。节点必须是 `scroll-view` 或者 `viewport`。返回 `NodesRef` 对应的 `SelectorQuery`。
|
|
117
|
+
|
|
118
|
+
**callback 返回参数**
|
|
119
|
+
|
|
120
|
+
| 属性 | 类型 | 说明 |
|
|
121
|
+
| ---------- | ------ | ------------------ |
|
|
122
|
+
| id | String | 节点的 ID |
|
|
123
|
+
| dataset | Object | 节点的 dataset |
|
|
124
|
+
| scrollLeft | Number | 节点的水平滚动位置 |
|
|
125
|
+
| scrollTop | Number | 节点的竖直滚动位置 |
|
|
126
|
+
|
|
127
|
+
##### nodesRef.context(callback)
|
|
128
|
+
|
|
129
|
+
添加节点的 Context 对象查询请求。支持 [`VideoContext`](https://uniapp.dcloud.net.cn/api/media/video-context.html)、[`CanvasContext`](https://uniapp.dcloud.net.cn/api/canvas/CanvasContext.html)、和 [`MapContext`](https://uniapp.dcloud.net.cn/api/location/map.html) 等的获取。
|
|
130
|
+
|
|
131
|
+
**平台差异说明**
|
|
132
|
+
|
|
133
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
134
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
135
|
+
| √ | √ | √ | x |
|
|
136
|
+
|
|
137
|
+
**callback 返回参数**
|
|
138
|
+
|
|
139
|
+
| 属性 | 类型 | 说明 |
|
|
140
|
+
| ------- | ------ | ----------------------- |
|
|
141
|
+
| context | Object | 节点对应的 Context 对象 |
|
|
142
|
+
|
|
143
|
+
##### nodesRef.node(callback)
|
|
144
|
+
|
|
145
|
+
获取 `Node` 节点实例。目前支持 `Canvas` 的获取。
|
|
146
|
+
|
|
147
|
+
**平台差异说明**
|
|
148
|
+
|
|
149
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
150
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
151
|
+
| x | x | √ | x |
|
|
152
|
+
|
|
153
|
+
**callback 返回参数**
|
|
154
|
+
|
|
155
|
+
| 属性 | 类型 | 说明 |
|
|
156
|
+
| ---- | ------ | -------------------- |
|
|
157
|
+
| node | Object | 节点对应的 Node 实例 |
|
|
158
|
+
|
|
159
|
+
**注意**
|
|
160
|
+
|
|
161
|
+
- 目前仅能用于`canvas`
|
|
162
|
+
- `canvas`需设置`type="webgl"`才能正常使用
|
|
163
|
+
|
|
164
|
+
#### 代码示例
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
uni.createSelectorQuery()
|
|
168
|
+
.selectViewport()
|
|
169
|
+
.scrollOffset((res) => {
|
|
170
|
+
console.log('竖直滚动位置' + res.scrollTop);
|
|
171
|
+
})
|
|
172
|
+
.exec();
|
|
173
|
+
|
|
174
|
+
let view = uni.createSelectorQuery().in(this).select('.test');
|
|
175
|
+
|
|
176
|
+
view.fields(
|
|
177
|
+
{
|
|
178
|
+
size: true,
|
|
179
|
+
scrollOffset: true
|
|
180
|
+
},
|
|
181
|
+
(data) => {
|
|
182
|
+
console.log('得到节点信息' + JSON.stringify(data));
|
|
183
|
+
console.log('节点的宽为' + data.width);
|
|
184
|
+
}
|
|
185
|
+
).exec();
|
|
186
|
+
|
|
187
|
+
view.boundingClientRect((data) => {
|
|
188
|
+
console.log('得到布局位置信息' + JSON.stringify(data));
|
|
189
|
+
console.log('节点离页面顶部的距离为' + data.top);
|
|
190
|
+
}).exec();
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**注意**
|
|
194
|
+
|
|
195
|
+
- weex 暂不支持 `Util.createSelectorQuery`,暂时使用下面的方案
|
|
196
|
+
|
|
197
|
+
```html
|
|
198
|
+
<template>
|
|
199
|
+
<view class="wrapper">
|
|
200
|
+
<view ref="box" class="box">
|
|
201
|
+
<text class="info">Width: {{size.width}}</text>
|
|
202
|
+
<text class="info">Height: {{size.height}}</text>
|
|
203
|
+
<text class="info">Top: {{size.top}}</text>
|
|
204
|
+
<text class="info">Bottom: {{size.bottom}}</text>
|
|
205
|
+
<text class="info">Left: {{size.left}}</text>
|
|
206
|
+
<text class="info">Right: {{size.right}}</text>
|
|
207
|
+
</view>
|
|
208
|
+
</view>
|
|
209
|
+
</template>
|
|
210
|
+
```
|
|
211
|
+
```js
|
|
212
|
+
// 注意平台差异
|
|
213
|
+
// #ifdef APP-NVUE
|
|
214
|
+
const dom = weex.requireModule('dom');
|
|
215
|
+
// #endif
|
|
216
|
+
|
|
217
|
+
export default {
|
|
218
|
+
data() {
|
|
219
|
+
return {
|
|
220
|
+
size: {
|
|
221
|
+
width: 0,
|
|
222
|
+
height: 0,
|
|
223
|
+
top: 0,
|
|
224
|
+
bottom: 0,
|
|
225
|
+
left: 0,
|
|
226
|
+
right: 0
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
},
|
|
230
|
+
onReady() {
|
|
231
|
+
setTimeout(() => {
|
|
232
|
+
const result = dom.getComponentRect(this.$refs.box, (option) => {
|
|
233
|
+
console.log('getComponentRect:', option);
|
|
234
|
+
this.size = option.size;
|
|
235
|
+
});
|
|
236
|
+
console.log('return value:', result);
|
|
237
|
+
console.log('viewport:', dom.getComponentRect('viewport'));
|
|
238
|
+
}, 100);
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Util.pageScrollTo(OBJECT)
|
|
244
|
+
|
|
245
|
+
将页面滚动到目标位置。
|
|
246
|
+
|
|
247
|
+
**平台差异**
|
|
248
|
+
|
|
249
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
250
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
251
|
+
| √ | √ | √ | √ |
|
|
252
|
+
|
|
253
|
+
**OBJECT 参数说明**
|
|
254
|
+
|
|
255
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
256
|
+
| :-------- | :------- | :--- | :------------------------------------------------------- |
|
|
257
|
+
| scrollTop | Number | 否 | 滚动到页面的目标位置(单位 px) |
|
|
258
|
+
| selector | String | 否 | 选择器,H5、微信小程序 2.7.3+ 、支付宝小程序 1.20.0+支持 |
|
|
259
|
+
| duration | Number | 否 | 滚动动画的时长,默认 300ms,单位 ms |
|
|
260
|
+
| success | function | 否 | 接口调用成功的回调函数 |
|
|
261
|
+
| fail | function | 否 | 接口调用失败的回调函数 |
|
|
262
|
+
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
|
|
263
|
+
|
|
264
|
+
**selector 语法**
|
|
265
|
+
selector 类似于 CSS 的选择器,但仅支持下列语法。
|
|
266
|
+
|
|
267
|
+
- ID 选择器:#the-id
|
|
268
|
+
- class 选择器(可以连续指定多个):`.a-class.another-class`
|
|
269
|
+
- 子元素选择器:`.the-parent > .the-child`
|
|
270
|
+
- 后代选择器:`.the-ancestor .the-descendant`
|
|
271
|
+
- 跨自定义组件的后代选择器:`.the-ancestor >>> .the-descendant`
|
|
272
|
+
- 多选择器的并集:`#a-node, .some-other-nodes`
|
|
273
|
+
|
|
274
|
+
**示例**
|
|
275
|
+
|
|
276
|
+
```javascript
|
|
277
|
+
Util.pageScrollTo({
|
|
278
|
+
scrollTop: 0,
|
|
279
|
+
duration: 300
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Util.onWindowResize(CALLBACK)
|
|
284
|
+
|
|
285
|
+
监听窗口尺寸变化事件
|
|
286
|
+
|
|
287
|
+
**平台差异**
|
|
288
|
+
|
|
289
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
290
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
291
|
+
| √ | √ | √ | X |
|
|
292
|
+
|
|
293
|
+
**CALLBACK 参数说明**
|
|
294
|
+
|
|
295
|
+
| 属性 | 类型 | 说明 |
|
|
296
|
+
| ---- | ------ | ---------------------------------------------------------- |
|
|
297
|
+
| size | Object | 变化后的窗口的大小,单位为 px ,{windowWidth,windowHeight} |
|
|
298
|
+
|
|
299
|
+
**代码示例**
|
|
300
|
+
|
|
301
|
+
```javascript
|
|
302
|
+
Util.onWindowResize((res) => {
|
|
303
|
+
console.log('变化后的窗口宽度=' + res.size.windowWidth);
|
|
304
|
+
console.log('变化后的窗口高度=' + res.size.windowHeight);
|
|
305
|
+
});
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**TIPS**
|
|
309
|
+
|
|
310
|
+
- 横竖屏切换时,会触发此事件。
|
|
311
|
+
|
|
312
|
+
### Util.offWindowResize(CALLBACK)
|
|
313
|
+
|
|
314
|
+
取消监听窗口尺寸变化事件
|
|
315
|
+
|
|
316
|
+
**平台差异**
|
|
317
|
+
|
|
318
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
319
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
320
|
+
| √ | √ | √ | X |
|
|
321
|
+
|
|
322
|
+
**代码示例**
|
|
323
|
+
|
|
324
|
+
```javascript
|
|
325
|
+
Util.offWindowResize(() => {
|
|
326
|
+
console.log('取消监听窗口尺寸变化事件');
|
|
327
|
+
});
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Util.loadFontFace(Object object)
|
|
331
|
+
|
|
332
|
+
动态加载网络字体,文件地址需为下载类型。微信小程序 `'2.10.0'`起支持全局生效,需在 `app.vue` 中调用。
|
|
333
|
+
|
|
334
|
+
注意:
|
|
335
|
+
|
|
336
|
+
1. 引入中文字体,体积过大时会发生错误,建议抽离出部分中文,减少体积,或者用图片替代
|
|
337
|
+
2. 微信小程序端只支持网络字体,字体链接必须是 https。
|
|
338
|
+
3. 微信小程序端字体链接必须是同源下的,或开启了 cors 支持,微信小程序的域名是 servicewechat.com
|
|
339
|
+
4. 工具里提示 Faild to load font 可以忽略
|
|
340
|
+
|
|
341
|
+
**平台差异说明**
|
|
342
|
+
|
|
343
|
+
**平台差异**
|
|
344
|
+
|
|
345
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
346
|
+
| :-: | :--------: | :-----------: | :----------: |
|
|
347
|
+
| √ | √ | 基础库 2.1.0+ | 1.11.0+ |
|
|
348
|
+
|
|
349
|
+
**参数说明**
|
|
350
|
+
|
|
351
|
+
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|
|
352
|
+
| :------- | :------- | :----- | :--- | :------------------------------------------------------------------------ |
|
|
353
|
+
| global | Boolean | false | 否 | 是否全局生效 |
|
|
354
|
+
| family | String | | 是 | 定义的字体名称 |
|
|
355
|
+
| source | String | | 是 | 字体资源的地址。建议格式为 TTF 和 WOFF,WOFF2 在低版本的 iOS 上会不兼容。 |
|
|
356
|
+
| desc | Object | | 否 | 可选的字体描述符 |
|
|
357
|
+
| success | Function | | 否 | 接口调用成功的回调函数 |
|
|
358
|
+
| fail | Function | | 否 | 接口调用失败的回调函数 |
|
|
359
|
+
| complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
|
|
360
|
+
|
|
361
|
+
**Object.desc 的结构**
|
|
362
|
+
|
|
363
|
+
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|
|
364
|
+
| :------ | :----- | :----- | :--- | :--------------------------------------------------------------------- |
|
|
365
|
+
| style | String | normal | 否 | 字体样式,可选值为 normal / italic / oblique |
|
|
366
|
+
| weight | String | normal | 否 | 字体粗细,可选值为 normal / bold / 100 / 200../ 900 |
|
|
367
|
+
| variant | String | normal | 否 | 设置小型大写字母的字体显示文本,可选值为 normal / small-caps / inherit |
|
|
368
|
+
|
|
369
|
+
**代码示例**
|
|
370
|
+
|
|
371
|
+
```javascript
|
|
372
|
+
Util.loadFontFace({
|
|
373
|
+
family: 'Bitstream Vera Serif Bold',
|
|
374
|
+
source: 'url("https://sungd.github.io/Pacifico.ttf")',
|
|
375
|
+
success() {
|
|
376
|
+
console.log('success');
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Util.getMenuButtonBoundingClientRect()
|
|
382
|
+
|
|
383
|
+
在平台小程序中,如果原生导航栏被隐藏,仍然在右上角会有一个悬浮按钮,微信下也被称为胶囊按钮。本 API 用于获取小程序下该菜单按钮的布局位置信息,方便开发者布局顶部内容时避开该按钮。
|
|
384
|
+
|
|
385
|
+
坐标信息以屏幕左上角为原点。
|
|
386
|
+
|
|
387
|
+
**平台差异**
|
|
388
|
+
|
|
389
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
390
|
+
| :-: | :--------: | :--------: | :----------: |
|
|
391
|
+
| x | x | √ | √ |
|
|
392
|
+
|
|
393
|
+
**返回值说明**
|
|
394
|
+
|
|
395
|
+
| 属性 | 类型 | 说明 |
|
|
396
|
+
| :----: | :----: | :------------------: |
|
|
397
|
+
| width | number | 宽度,单位:px |
|
|
398
|
+
| height | number | 高度,单位:px |
|
|
399
|
+
| top | number | 上边界坐标,单位:px |
|
|
400
|
+
| right | number | 右边界坐标,单位:px |
|
|
401
|
+
| bottom | number | 下边界坐标,单位:px |
|
|
402
|
+
| left | number | 左边界坐标,单位:px |
|
|
403
|
+
|
|
404
|
+
**示例**
|
|
405
|
+
|
|
406
|
+
```javascript
|
|
407
|
+
let menuButtonInfo = Util.getMenuButtonBoundingClientRect();
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
**注意**
|
|
411
|
+
|
|
412
|
+
- 支付宝小程序:其逻辑与微信小程序不同,它提供了菜单点击后按钮的自定义功能,可以选择显示那些系统按钮,[规范详情](https://docs.alipay.com/mini/api/optionmenuitem)
|
package/dist/data/m8mpdoc-develop/006-Util/345/267/245/345/205/267/351/233/206/013-4.eventapi.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# 扩展-通讯API
|
|
2
|
+
|
|
3
|
+
## 使用场景
|
|
4
|
+
|
|
5
|
+
使用到涉及通讯的API场景。
|
|
6
|
+
|
|
7
|
+
注意,在EJSAPP中,仅单页应用下生效。
|
|
8
|
+
|
|
9
|
+
**平台差异**
|
|
10
|
+
|
|
11
|
+
| H5 | 新点小程序 | 微信小程序 | 支付宝小程序 |
|
|
12
|
+
| :---: | :--------: | :--------: | :----------: |
|
|
13
|
+
| √ | √ | √ | √ |
|
|
14
|
+
|
|
15
|
+
### Util.$emit(eventName,OBJECT)
|
|
16
|
+
|
|
17
|
+
触发全局的自定义事件,附加参数都会传给监听器回调函数。
|
|
18
|
+
|
|
19
|
+
|属性 |类型 |描述 |
|
|
20
|
+
|--- |--- |--- |
|
|
21
|
+
|eventName |String |事件名 |
|
|
22
|
+
|OBJECT |Object |触发事件携带的附加参数 |
|
|
23
|
+
|
|
24
|
+
**代码示例**
|
|
25
|
+
```javascript
|
|
26
|
+
Util.$emit('update',{msg:'页面更新'})
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Util.$on(eventName,callback)
|
|
31
|
+
|
|
32
|
+
监听全局的自定义事件,事件由 `Util.$emit` 触发,回调函数会接收事件触发函数的传入参数。
|
|
33
|
+
|
|
34
|
+
|属性 |类型 |描述 |
|
|
35
|
+
|--- |--- |--- |
|
|
36
|
+
|eventName |String |事件名 |
|
|
37
|
+
|callback |Function |事件的回调函数 |
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
**代码示例**
|
|
41
|
+
```javascript
|
|
42
|
+
Util.$on('update',function(data){
|
|
43
|
+
console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Util.$once(eventName,callback)
|
|
49
|
+
|
|
50
|
+
监听全局的自定义事件,事件由 `Util.$emit` 触发,但仅触发一次,在第一次触发之后移除该监听器。
|
|
51
|
+
|
|
52
|
+
|属性 |类型 |描述 |
|
|
53
|
+
|--- |--- |--- |
|
|
54
|
+
|eventName |String |事件名 |
|
|
55
|
+
|callback |Function |事件的回调函数 |
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
**代码示例**
|
|
59
|
+
```javascript
|
|
60
|
+
Util.$once('update',function(data){
|
|
61
|
+
console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Util.$off([eventName, callback])
|
|
66
|
+
|
|
67
|
+
移除全局自定义事件监听器。
|
|
68
|
+
|
|
69
|
+
|属性 |类型 |描述 |
|
|
70
|
+
|--- |--- |--- |
|
|
71
|
+
|eventName |Array<String> |事件名 |
|
|
72
|
+
|callback |Function |事件的回调函数 |
|
|
73
|
+
|
|
74
|
+
**Tips**
|
|
75
|
+
- 如果Util.$off没有传入参数,则移除App级别的所有事件监听器;
|
|
76
|
+
- 如果只提供了事件名(eventName),则移除该事件名对应的所有监听器;
|
|
77
|
+
- 如果同时提供了事件与回调,则只移除这个事件回调的监听器;
|
|
78
|
+
- 提供的回调必须跟$on的回调为同一个才能移除这个回调的监听器;
|
|
79
|
+
|
|
80
|
+
**代码示例**
|
|
81
|
+
|
|
82
|
+
`$emit`、`$on`、`$off`常用于跨页面、跨组件通讯,这里为了方便演示放在同一个页面
|
|
83
|
+
|
|
84
|
+
```html
|
|
85
|
+
<template>
|
|
86
|
+
<view class="content">
|
|
87
|
+
<view class="data">
|
|
88
|
+
<text>{{val}}</text>
|
|
89
|
+
</view>
|
|
90
|
+
<button type="primary" @click="comunicationOff">结束监听</button>
|
|
91
|
+
</view>
|
|
92
|
+
</template>
|
|
93
|
+
|
|
94
|
+
<script>
|
|
95
|
+
export default {
|
|
96
|
+
data() {
|
|
97
|
+
return {
|
|
98
|
+
val: 0
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
onLoad() {
|
|
102
|
+
setInterval(()=>{
|
|
103
|
+
Util.$emit('add', {
|
|
104
|
+
data: 2
|
|
105
|
+
})
|
|
106
|
+
},1000)
|
|
107
|
+
Util.$on('add', this.add)
|
|
108
|
+
},
|
|
109
|
+
methods: {
|
|
110
|
+
comunicationOff() {
|
|
111
|
+
Util.$off('add', this.add)
|
|
112
|
+
},
|
|
113
|
+
add(e) {
|
|
114
|
+
this.val += e.data
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
</script>
|
|
119
|
+
|
|
120
|
+
<style>
|
|
121
|
+
.content {
|
|
122
|
+
display: flex;
|
|
123
|
+
flex-direction: column;
|
|
124
|
+
align-items: center;
|
|
125
|
+
justify-content: center;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.data {
|
|
129
|
+
text-align: center;
|
|
130
|
+
line-height: 40px;
|
|
131
|
+
margin-top: 40px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
button {
|
|
135
|
+
width: 200px;
|
|
136
|
+
margin: 20px 0;
|
|
137
|
+
}
|
|
138
|
+
</style>
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
**注意事项**
|
|
144
|
+
- Util.$emit、 Util.$on 、 Util.$once 、Util.$off 触发的事件都是 App 全局级别的,跨任意组件,页面,vue 等
|
|
145
|
+
- 使用时,注意及时销毁事件监听,比如,页面 onLoad 里边 Util.$on 注册监听,onUnload 里边 Util.$off 移除,或者一次性的事件,直接使用 Util.$once 监听
|
|
146
|
+
- 注意 Util.$on 定义完成后才能接收到 Util.$emit 传递的数据
|