This repository has been archived by the owner on Jan 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathwe-app.d.ts
2185 lines (2001 loc) · 84.7 KB
/
we-app.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// #region global declarations
/**注册一个小程序 */
declare function App(param: WeApp.AppParam): void;
/**注册一个页面 */
declare function Page(param: WeApp.PageParam): void;
/**注册一个组件 */
declare function Component(param: WeApp.ComponentParam): void
/**全局函数 可以获取到小程序实例 */
declare function getApp(): WeApp.AppParam;
/**获取当前页面栈的实例 以数组形式按栈的顺序给出 第一个元素为首页 最后一个元素为当前页面 */
declare function getCurrentPages(): Array<WeApp.Page>;
declare var wx: WeApp.wx;
// #endregion
declare namespace WeApp {
// #region WeApp interfaces
/**指定小程序的生命周期函数等 */
interface AppParam {
/**
* 生命周期函数--监听小程序初始化
* 当小程序初始化完成时 会触发 onLaunch(全局只触发一次)
*/
onLaunch?: (info: LaunchData) => void;
/**
* 生命周期函数--监听小程序显示
* 当小程序启动 或从后台进入前台显示 会触发 onShow
*/
onShow?: (info: LaunchData) => void;
/**
* 生命周期函数--监听小程序隐藏
* 当小程序从前台进入后台 会触发 onHide
*/
onHide?: Function;
/**
* 错误监听函数
* 当小程序发生脚本错误 或者 api 调用失败时 会触发 onError 并带上错误信息
*/
onError?: Function;
/**开发者可以添加任意的函数或数据到参数中 用 this 可以访问 */
[others: string]: any;
}
/**指定页面的初始数据 生命周期函数 事件处理函数等 */
interface PageParam {
/**页面的初始数据 */
data?: Object;
/**生命周期函数--监听页面加载 */
onLoad?: Function;
/**生命周期函数--监听页面初次渲染完成 */
onReady?: Function;
/**生命周期函数--监听页面显示 */
onShow?: Function
/**生命周期函数--监听页面隐藏 */
onHide?: Function;
/**生命周期函数--监听页面卸载 */
onUnload?: Function;
/**页面相关事件处理函数--监听用户下拉动作 */
onPullDownRefresh?: Function;
/**页面上拉触底事件的处理函数 */
onReachBottom?: Function;
/**
* 设置该页面的分享信息
* * 只有定义了此事件处理函数 右上角菜单才会显示“分享”按钮
* * 用户点击分享按钮的时候会调用
* * 此事件需要 return 一个 Object 用于自定以分享内容
*/
onShareAppMessage?: (options?: { from: string, target: Target }) => PageShareData;
/**页面滚动触发事件的处理函数 */
onPageScroll?: Function;
/**开发者可以添加任意的函数或数据到参数中 用 this 可以访问 */
[others: string]: any;
}
/**指定组件的生命周期函数 时间处理函数及方法等 */
interface ComponentParam {
/**组件的对外属性 是属性名到属性设置的映射表
* 属性设置中可包含三个字段
* type 表示属性类型
* value 表示属性初始值
* observer 表示属性值被更改时的响应函数
*/
properties?: Object
/**组件的内部数据 和 properties 一同用于组件的模版渲染 */
data?: Object
/**组件的方法 包括事件响应函数和任意的自定义方法 */
methods?: {
[others: string]: any
}
/**类似于mixins和traits的组件间代码复用机制 */
behaviors?: Array<string>
/**组件生命周期函数 在组件实例进入页面节点树时执行 注意此时不能调用 setData */
created?: Function
/**组件生命周期函数 在组件实例进入页面节点树时执行 */
attached?: Function
/**组件生命周期函数 在组件布局完成后执行 此时可以获取节点信息 */
ready?: Function
/**组件生命周期函数 在组件实例被移动到节点树另一个位置时执行 */
moved?: Function
/**组件生命周期函数 在组件实例被从页面节点树移除时执行 */
detached?: Function
/**组件间关系定义 */
relations?: Object
/**组件接受的外部样式类 */
externalClasses?: Array<string>
/**一些组件选项 请参见文档其他部分的说明 */
options?: Object
/**开发者可以添加任意的函数或数据到参数中 用 this 可以访问 */
[others: string]: any
}
/**页面 */
interface Page {
/**用于将数据从逻辑层发送到视图层 */
setData: (data: any, callback?: Function) => void;
/**字段可以获取到当前页面的路径*/
route: string;
/**页面逻辑层数据 */
data: any;
[others: string]: any;
}
interface wx {
// 网络 API 列表
/**
* 发起网络请求
* 发起的是https请求
* 一个微信小程序同时只能有5个网络请求连接
*/
request(param: RequestParam): RequestTask;
/**
* 上传文件
* 将本地资源上传到开发者服务器
* 如 页面通过 wx.chooseImage 等接口获取到一个本地资源的临时文件路径后 可通过此接口将本地资源上传到指定服务器 客户端发起一个 HTTPS POST 请求 其中 Content-Type 为 multipart/form-data
*/
uploadFile(param: UploadParam): UploadTask;
/**
* 下载文件
* 下载文件资源到本地 客户端直接发起一个 HTTP GET 请求 把下载到的资源根据 type 进行处理 并返回文件的本地临时路径
*/
downloadFile(param: DownloadParam): DownloadTask;
/**
* 创建 WebSocket 连接
* 基础库 1.7.0 之前 一个微信小程序同时只能有一个 WebSocket 连接 如果当前已存在一个 WebSocket 连接 会自动关闭该连接 并重新创建一个 WebSocket 连接 基础库版本 1.7.0 及以后 支持存在多个 WebSokcet 连接 每次成功调用 wx.connectSocket 会返回一个新的 SocketTask
*/
connectSocket(param: ConnectSocketParam): void;
/**监听 WebSocket 打开 */
onSocketOpen(callback: (res?: any) => void): void;
/**监听 WebSocket 错误 */
onSocketError(callback: (res?: any) => void): void;
/**
* 发送 WebSocket 消息
* 通过 WebSocket 连接发送数据 需要先 wx.connectSocket 并在 wx.onSocketOpen 回调之后才能发送
*/
sendSocketMessage(message: SocketMessage): void;
/**接受 WebSocket 消息 */
onSocketMessage(callback: (res?: { data: string | ArrayBuffer }) => void): void;
/**关闭 WebSocket 连接 */
closeSocket(param: CloseSocketParam): void;
/**监听 WebSocket 关闭 */
onSocketClose(callback: (res?: any) => void): void;
// 媒体 API 列表
/**从相册选择图片 或者拍照 */
chooseImage(param: ChooseImageParam): void;
/**预览图片 */
previewImage(param: PreviewImageParam): void;
/**获取图片信息 */
getImageInfo(param: ImageInfoParam): void;
/**
* 开始录音
* 当主动调用wx.stopRecord 或者录音超过1分钟时自动结束录音 返回录音文件的临时文件路径
*/
startRecord(param: RecordParam): void;
/**
* 结束录音
* 主动调用停止录音
*/
stopRecord(): void;
/**获取全局唯一的录音管理器 */
getRecorderManager(): RecorderManager;
/**
* 播放语音
* 开始播放语音 同时只允许一个语音文件正在播放 如果前一个语音文件还没播放完 将中断前一个语音播放
*/
playVoice(param: VoiceParam): void;
/**
* 暂停播放语音
* 暂停正在播放的语音 再次调用wx.playVoice播放同一个文件时 会从暂停处开始播放 如果想从头开始播放 需要先调用 wx.stopVoice
*/
pauseVoice(): void;
/**结束播放语音 */
stopVoice(): void;
/**获取音乐播放状态 */
getBackgroundAudioPlayerState(param: GetBackgroundAudioPlayerStateParam): void;
/**播放音乐 */
playBackgroundAudio(param: PlayBackgroundAudioParam): void;
/**暂停播放音乐 */
pauseBackgroundAudio(): void;
/**控制音乐播放进度 */
seekBackgroundAudio(param: SeekBackgroundAudioParam): void;
/**停止播放音乐 */
stopBackgroundAudio(): void;
/**监听音乐开始播放 */
onBackgroundAudioPlay(callback: (res?: any) => void): void;
/**监听音乐暂停 */
onBackgroundAudioPause(callback: (res?: any) => void): void;
/**监听音乐结束 */
onBackgroundAudioStop(callback: (res?: any) => void): void;
/**从相册选择视频 或者拍摄 */
chooseVideo(param: ChooseVideoParam): void;
/**创建并返回 audio 上下文 audioContext 对象 */
createAudioContext(audioId: string): AudioContext;
/**
* @since 1.6.0
* @description 创建并返回内部 audio 上下文 innerAudioContext 对象 本接口是 wx.createAudioContext 升级版
*/
createInnerAudioContext(): InnerAudioContext;
/**创建并返回 video 上下文 videoContext 对象 */
createVideoContext(videoId: string): VideoContext;
/**创建并返回 camera 上下文 cameraContext 对象 cameraContext 与页面的 camera 组件绑定 一个页面只能有一个camera 通过它可以操作对应的 <camera/> 组件 */
createCameraContext(): CameraContext;
// 文件
/**保存文件 */
saveFile(param: SaveFileParam): void;
/**获取本地已保存的文件列表 */
getSavedFileList(param: FileListParam): void;
/**获取本地文件的文件信息 */
getSavedFileInfo(param: FileInfoParam): void;
/**删除本地存储的文件 */
removeSavedFile(param: RemoveFileParam): void;
/**
* 新开页面打开文档
* 支持格式 doc/x,xls/x,ppt/x,pdf
*/
openDocument(param: OpenDocumentParam): void;
// 数据 API 列表
/**获取本地数据缓存 */
getStorage(param: GetStorageParam): void;
/**从本地缓存中同步获取指定 key 对应的内容 */
getStorageSync(key: string): any;
/**
* 设置本地数据缓存
* 将数据存储在本地缓存中指定的 key 中会覆盖掉原来该 key 对应的内容 这是一个异步接口
*/
setStorage(param: SetStorageParam): void;
/**将 data 存储在本地缓存中指定的 key 中 会覆盖掉原来该 key 对应的内容 这是一个同步接口 */
setStorageSync(key: string, data: any): void;
/**从本地缓存中异步移除指定key */
removeStorage(param: RemoveStorageParam): void;
/**从本地缓存中同步移除指定key */
removeStorageSync(key: string): void;
/**清理本地数据缓存 */
clearStorage(): void;
/**同步清理本地数据缓存 */
clearStorageSync(): void;
/**异步获取当前storage的相关信息 */
getStorageInfo(pram: StorageInfoParam): void;
/**同步获取当前storage的相关信息 */
getStorageInfoSync(): StorageInfo;
// 位置 API 列表
/**获取当前的地理位置 速度 */
getLocation(param: GetLocationParam): void;
/**使用微信内置地图查看位置 */
openLocation(param: OpenLocationParam): void;
/**打开地图选择位置 */
chooseLocation(param: ChooseLocationParam): void;
/**创建并返回 map 上下文 mapContext 对象 */
createMapContext(mapId: string): void;
// 设备 API 列表
/**获取网络类型 */
getNetworkType(param: NetworkTypeParam): void;
/**获取系统信息 */
getSystemInfo(param: SystemInfoParam): void;
/**同步获取系统信息 */
getSystemInfoSync(): SystemInfo;
/**
* 获取全局唯一的版本更新管理器,用于管理小程序更新
*/
getUpdateManager(): UpdateManager;
/**
* 监听重力感应数据
* 频率 5次/秒
*/
onAccelerometerChange(callback: (res?: AccelerometerInfo) => void): void;
/**
* 监听罗盘数据
* 频率 5次/秒
*/
onCompassChange(callback: (res?: CompassInfo) => void): void;
/**打电话 */
makePhoneCall(param: PhoneCallParam): void;
//交互反馈
/**显示消息提示框 */
showToast(param: ToastParam): void;
/**隐藏消息提示框 */
hideToast(): void;
/**显示模态弹窗 */
showModal(param: ModalParam): void;
/**显示操作菜单 */
showActionSheet(param: ActionSheetParam): void;
// 界面 API 列表
/**设置置顶信息 */
setTopBarText(param: TopBarTextParam): void;
/**设置当前页面标题 */
setNavigationBarTitle(param: NavigationBarTitleParam): void;
/**在当前页面显示导航条加载动画 */
showNavigationBarLoading(): void;
/**隐藏导航条加载动画 */
hideNavigationBarLoading(): void;
/**新窗口打开页面 */
navigateTo(param: NavigateToParam): void;
/**原窗口打开页面 */
redirectTo(param: NavigateToParam): void;
/**关闭当前页面 回退前一页面 */
navigateBack(param?: { /**返回的页面数 如果 delta 大于现有页面数 则返回到首页 默认1 */delta: number }): void;
/**动画 */
createAnimation(param: AnimationParam): Animation;
/**把当前画布的内容导出生成图片 并返回文件路径 */
canvasToTempFilePath(param: CanvasToTempFilePathParam): void;
/**
* @deprecated 不推荐使用
* @description 创建绘图上下文
*/
createContext(): CanvasContext;
/**
* @deprecated 不推荐使用
* @description 绘图
*/
drawCanvas(param: DrawCanvasParam): void;
/**创建 canvas 绘图上下文(指定 canvasId) */
createCanvasContext(canvasId: string): CanvasContext;
/**隐藏键盘 */
hideKeyboard(): void;
/**停止下拉刷新动画 */
stopPullDownRefresh(): void;
/**
* @since 1.5.0
* @description 开始下拉刷新 调用后触发下拉刷新动画 效果与用户手动下拉刷新一致
*/
startPullDownRefresh(param: CallbackWithErrMsgParam): never;
// 开放接口
/**登录 */
login(param: LoginParam): void;
/**获取用户信息 */
getUserInfo(param: UserInfoParam): void;
/**发起微信支付 */
requestPayment(param: RequestPaymentParam): void;
/**检查登陆态是否过期 */
checkSession(param: CallbackParam): void;
/**跳转到 tabBar 页面 并关闭其他所有非 tabBar 页面 */
switchTab(param: SwitchTabParam): void;
/**调起客户端扫码界面 扫码成功后返回对应的结果 */
scanCode(param: ScanCodeParam): void;
// 蓝牙相关
/**初始化蓝牙适配器 */
openBluetoothAdapter(param: CallbackParam): void;
/**关闭蓝牙模块 调用该方法将断开所有已建立的链接并释放系统资源 */
closeBluetoothAdapter(param: CallbackParam): void;
/**获取本机蓝牙适配器状态 */
getBluetoothAdapterState(param: BluetoothAdapterStateParam): void;
/**监听蓝牙适配器状态变化事件 */
onBluetoothAdapterStateChange(param: BluetoothAdapterStateChangeParam): void;
/**开始搜寻附近的蓝牙外围设备 */
startBluetoothDevicesDiscovery(param: BluetoothDevicesDiscoveryParam): void;
/**停止搜寻附近的蓝牙外围设备 */
stopBluetoothDevicesDiscovery(param: CallbackWithErrMsgParam): void;
/**获取所有已发现的蓝牙设备 包括已经和本机处于连接状态的设备 */
getBluetoothDevices(param: BluetoothDevicesParam): void;
/**监听寻找到新设备的事件 */
onBluetoothDeviceFound(callback: (devices: Array<BluetoothDevice>) => void): void;
/**根据 uuid 获取处于已连接状态的设备 */
getConnectedBluetoothDevices(param: ConnectedBluetoothDevicesParam): void;
/**连接低功耗蓝牙设备 */
createBLEConnection(param: BLEConnectionParam): void;
/**断开与低功耗蓝牙设备的连接 */
closeBLEConnection(param: BLEConnectionParam): void;
/**监听低功耗蓝牙连接的错误事件 包括设备丢失 连接异常断开等等 */
onBLEConnectionStateChange(callback: (res: { deviceId: string; connected: boolean }) => void): void;
/**获取蓝牙设备所有 service */
getBLEDeviceServices(param: BLEDeviceServicesParam): void;
/**获取蓝牙设备所有 characteristic */
getBLEDeviceCharacteristics(param: BLEDeviceCharacteristicsParam): void;
/**读取低功耗蓝牙设备的特征值的二进制数据值 */
readBLECharacteristicValue(parm: BLECharacteristicValueParam): void;
/**向低功耗蓝牙设备特征值中写入二进制数据 */
writeBLECharacteristicValue(param: WriteBLECharacteristicValueParam): void;
/**启用低功耗蓝牙设备特征值变化时的 notify 功能 */
notifyBLECharacteristicValueChange(param: BLECharacteristicValueChangedParam): void;
/**监听低功耗蓝牙设备的特征值变化 必须先启用notify */
onBLECharacteristicValueChange(callback: (res: { deviceId: string; connected: boolean; characteristicId: string; value: ArrayBuffer }) => void): void;
/**调起用户编辑收货地址原生界面 并在编辑完成后返回用户选择的地址 */
chooseAddress(param: AddressParam): void;
/**调起客户端小程序设置界面 返回用户设置的操作结果 */
openSetting(param: SettingParam): void;
/**获取用户的当前设置 */
getSetting(param: SettingParam): void;
/**提前授权 */
authorize(param: AuthorizeParam): void;
/**关闭所有页面 打开到应用内的某个页面 */
reLaunch(param: ReLaunchParam): void;
/**将 ArrayBuffer 数据转成 Base64 字符串 */
arrayBufferToBase64(data: ArrayBuffer): string;
/**将 Base64 字符串转成 ArrayBuffer 数据 */
base64ToArrayBuffer(data: string): ArrayBuffer;
/**显示 loading 提示框 */
showLoading(param: LoadingParam): void;
/**隐藏消息提示框 */
hideLoading(): void;
/**开始监听加速度数据 */
startAccelerometer(param: CallbackParam): void;
/**停止监听加速度数据 */
stopAccelerometer(param: CallbackParam): void;
/**设置系统剪贴板的内容 */
setClipboardData(param: SetClipboardParam): void;
/**获取系统剪贴板内容 */
getClipboardData(param: CallbackParam): void;
/**批量添加卡券 */
addCard(param: CardParam): void;
/**查看微信卡包中的卡券 */
openCard(param: CardParam): void;
/**监听网络状态变化 */
onNetworkStatusChange(callback: (res: { isConnected: boolean; networkType: string; }) => void): void;
/**显示分享按钮 */
showShareMenu(param: ShareMenuParam): void;
/**隐藏分享按钮 */
hideShareMenu(param: CallbackParam): void;
/**获取分享详细信息 */
getShareInfo(param: ShareInfoParam): void;
/**更新转发属性 */
updateShareMenu(param: ShareMenuParam): void;
/**获取第三方平台自定义的数据字段 */
getExtConfig(param: ExtConfigParam): void;
/**获取第三方平台自定义的数据字段的同步接口 */
getExtConfigSync(): object;
/**
* 判断小程序的API 回调 参数 组件等是否在当前版本可用
* @param param 使用${API}.${method}.${param}.${options}或者${component}.${attribute}.${option}方式来调用
*/
canIUse(param: string): never;
/**开始搜索附近的iBeacon设备 */
startBeaconDiscovery(param: CallbackWithErrMsgParam): void;
/**停止搜索附近的iBeacon设备 */
stopBeaconDiscovery(param: CallbackWithErrMsgParam): void;
/**获取所有已搜索到的iBeacon设备 */
getBeacons(param: BeaconsParam): void;
/**监听 iBeacon 设备的更新事件 */
onBeaconUpdate(callback: (res: { beacons: Array<IBeacon> }) => void): void;
/**监听 iBeacon 服务的状态变化 */
onBeaconServiceChange(callback: (res: { /**服务目前是否可用 */available: boolean; /**目前是否处于搜索状态 */discovering: boolean }) => void): void;
/**获取屏幕亮度 */
getScreenBrightness(param: GetScreenBrightnessParam): void;
/**设置屏幕亮度 */
setScreenBrightness(param: SetScreenBrightnessParam): void;
/**保存联系人到系统通讯录 */
addPhoneContact(param: AddPhoneContactParam): void;
/**使手机发生较长时间的振动 400ms */
vibrateLong(param: CallbackParam): void;
/**使手机发生较短时间的振动 15ms */
vibrateShort(param: CallbackParam): void;
/**获取用户过去三十天微信运动步数 需要先调用 wx.login 接口 */
getWeRunData(param: GetWeRunDataParam): void;
/**保存图片到系统相册 需要用户授权 scope.writePhotosAlbum */
saveImageToPhotosAlbum(param: SaveImageToPhotosAlbumParam): void;
/**保存视频到系统相册 */
saveVideoToPhotosAlbum(param: SaveImageToPhotosAlbumParam): void;
/**获取全局唯一的背景音频管理器 */
getBackgroundAudioManager(): BackgroundAudioManager;
/**打开同一公众号下关联的另一个小程序 */
navigateToMiniProgram(param: NavigateToMiniProgramParam): void;
/**返回到上一个小程序 只有在当前小程序是被其他小程序打开时可以调用成功 */
navigateBackMiniProgram(param: NavigateBackMiniProgramParam): void;
/**
* 返回一个SelectorQuery对象实例
* 可以在这个实例上使用select等方法选择节点 并使用boundingClientRect等方法选择需要查询的信息
*/
createSelectorQuery(): SelectorQuery;
/**获取文件信息 */
getFileInfo(param: GetFileInfoParam): never;
/**监听用户主动截屏事件 用户使用系统截屏按键截屏时触发此事件 */
onUserCaptureScreen(callback?: Function): never;
/**将页面滚动到目标位置 单位px */
pageScrollTo(scrollTop: number): never;
/**支持小程序修改标题栏颜色 */
setNavigationBarColor(param: SetNavigationBarColorParam): never;
/**设置是否打开调试开关 此开关对正式版也能生效 */
setEnableDebug(param: SetEnableDebugParam): never;
/**设置是否保持常亮状态 仅在当前小程序生效 离开小程序后设置失效 */
setKeepScreenOn(param: SetKeepScreenOnParam): never;
/**
* @since 1.5.0
* @description 获取本机支持的 SOTER 生物认证方式
*/
checkIsSupportSoterAuthentication(param: CheckIsSupportSoterAuthenticationParam): never;
/**
* @since 1.5.0
* @description 开始 SOTER 生物认证
*/
startSoterAuthentication(param: StartSoterAuthenticationParam): never;
/**获取设备内是否录入如指纹等生物信息的接口 */
checkIsSoterEnrolledInDevice(param: CheckIsSoterEnrolledInDeviceParam): never;
/**
* @since 1.5.0
* @description 选择用户的发票抬头
*/
chooseInvoiceTitle(param: ChooseInvoiceTitleParam): never;
/**
* 获取日志管理器对象
* @since 2.1.0
*/
getLogManager(): LogManager;
}
// #endregion
// #region interfaces
interface CallbackParam {
/**接口调用成功的回调函数 */
success?: (res?: any) => void;
/**接口调用失败的回调函数 */
fail?: (res?: any) => void;
/**接口调用结束的回调函数(调用成功/失败都会执行) */
complete?: Function;
}
interface CallbackWithErrMsgParam extends CallbackParam {
success?: (res?: {/**成功:ok 错误:详细信息 */errMsg: string }) => void;
}
interface RequestParam extends CallbackParam {
/**开发者服务器接口地址 */
url: string;
/**请求的参数 */
data?: Object | string;
/**设置请求的 header,header 中不能设置 Referer */
header?: Object
/**默认为 GET 有效值:OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT */
method?: 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'CONNECT';
/**如果设为json 会尝试对返回的数据做一次 JSON.parse */
dataType?: string;
/**
* @description 设置响应的数据类型
* @since 1.7.0
*/
responseType?: 'text' | 'arraybuffer';
/**收到开发者服务成功返回的回调函数 res = { data: '开发者服务器返回的内容' } */
success?: (res?: HttpResponse) => void;
}
interface RequestTask {
abort(): never;
}
interface HttpResponse {
data?: Object | string | ArrayBuffer;
errMsg: string;
statusCode: number;
/**@since 1.2.0 */
header?: Object;
}
interface UploadParam extends CallbackParam {
/**开发者服务器 url */
url: string;
/**要上传文件资源的路径 */
filePath: string;
/**文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 */
name: string;
/**HTTP 请求 Header , header 中不能设置 Referer */
header?: Object;
/**HTTP 请求中其他额外的 form data */
formData?: Object;
}
interface UploadTask {
onProgressUpdate: (res: { progress: number; totalBytesSent: number; totalBytesExpectedToSend: number; }) => never;
abort(): never;
}
interface DownloadParam extends CallbackParam {
/**下载资源的 url */
url: string;
/**
* 下载资源的类型
* 用于客户端识别处理 有效值: image|audio|video
*/
type?: string;
/**HTTP 请求 Header */
header?: Object;
/** 下载成功后以 tempFilePath 的形式传给页面 res = { tempFilePath: '文件的临时路径' } */
success?: (res?: { tempFilePath: string }) => void
}
interface DownloadTask {
onProgressUpdate: (res: { progress: number; totalBytesWritten: number; totalBytesExpectedToWrite: number; }) => never;
abort(): never;
}
interface ConnectSocketParam extends CallbackParam {
/**开发者服务器接口地址 必须是 HTTPS 协议 且域名必须是后台配置的合法域名 */
url: string;
/**请求的数据 */
data?: Object;
/** HTTP Header header 中不能设置 Referer */
header?: Object;
/**默认是GET 有效值为: OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT */
method?: string;
/**子协议数组 */
protocols?: Array<string>;
}
interface SocketMessage extends CallbackParam {
/**需要发送的内容 */
data: string | ArrayBuffer;
}
interface CloseSocketParam extends CallbackParam {
/**一个数字值表示关闭连接的状态号 表示连接被关闭的原因 如果这个参数没有被指定 默认的取值是1000 */
code?: number;
/**一个可读的字符串 表示连接被关闭的原因 这个字符串必须是不长于123字节的UTF-8 文本 */
reason?: string;
}
interface ChooseImageParam extends CallbackParam {
/**最多可以选择的图片张数 默认9 */
count?: number;
/**original 原图 compressed 压缩图 默认二者都有 */
sizeType?: Array<string>;
/**album 从相册选图 camera 使用相机 默认二者都有 */
sourceType?: Array<string>;
}
interface PreviewImageParam extends CallbackParam {
/**当前显示图片的链接 不填则默认为 urls 的第一张 */
current?: string;
/**需要预览的图片链接列表 */
urls: Array<string>;
}
interface ImageInfoParam extends CallbackParam {
/**图片的路径 可以是相对路径 临时文件路径 存储文件路径 */
src: string;
success?: (res?: { width: number, height: number }) => void;
}
interface RecordParam extends CallbackParam {
duration?: number;
success?: (res?: { tempFilePath: string }) => void;
}
interface RecorderManager {
/**开始录音 */
start(options: RecorderManagerStartOption): void;
/**暂停录音 */
pause(): void;
/**继续录音 */
resume(): void;
/**停止录音 */
stop(): void;
/**录音开始事件 */
onStart: () => void;
/**录音暂停事件 */
onPause: () => void;
/**录音停止事件 会回调文件地址 */
onStop: (res?: { tempPath: string }) => void;
/**已录制完指定帧大小的文件 会回调录音分片结果数据。如果设置了 frameSize 则会回调此事件 */
onFrameRecorded: (res?: { frameBuffer: ArrayBuffer; isLastFrame: boolean }) => void;
/**录音错误事件 会回调错误信息 */
onError: (res?: { errMsg: string }) => void;
}
interface RecorderManagerStartOption {
/**
* 指定录音的时长 单位 ms 如果传入了合法的 duration 在到达指定的 duration 后会自动停止录音 最大值 600000(10 分钟),默认值 60000(1分钟)
*/
duration?: number;
/**采样率 */
sampleRate?: 8000 | 16000 | 44100;
/**录音通道数 */
numberOfChannels?: 1 | 2;
encodeBitRate?: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000;
/**音频格式 */
format?: 'aac' | 'mp3';
/**指定帧大小 单位 KB 传入 frameSize 后 每录制指定帧大小的内容后 会回调录制的文件内容 不指定则不会回调 暂仅支持 mp3 格式 */
frameSize?: number;
}
interface VoiceParam extends CallbackParam {
/**需要播放的语音文件的文件路径 */
filePath: string;
}
interface GetBackgroundAudioPlayerStateParam extends CallbackParam {
success?: (res?: BackgroundAudioPlayerState) => void;
}
interface BackgroundAudioPlayerState {
/**选定音频的长度 单位:s 只有在当前有音乐播放时返回 */
duration: number;
/**选定音频的播放位置 单位:s 只有在当前有音乐播放时返回 */
currentPosition: number;
/** 播放状态 2:没有音乐在播放 1:播放中 0:暂停中 */
status: number;
/**音频的下载进度 整数 80 代表 80% 只有在当前有音乐播放时返回 */
downloadPercent: number;
/**歌曲数据链接 只有在当前有音乐播放时返回 */
dataUrl: string;
}
interface PlayBackgroundAudioParam extends CallbackParam {
/**音乐链接 */
dataUrl: string;
/**音乐标题 */
title?: string;
/**封面URL */
coverImgUrl?: string;
}
interface SeekBackgroundAudioParam extends CallbackParam {
/**音乐位置 单位:秒 */
position: number;
}
interface SaveFileParam extends CallbackParam {
/**需要保存的文件的临时路径 */
tempFilePath: string;
success?: (res?: { savedFilePath?: string }) => void;
}
interface FileListParam extends CallbackParam {
success?: (res?: { errMsg: string, fileList: Array<FileInfo> }) => void;
}
interface FileInfo {
/**文件的本地路径 */
filePath: string;
/**文件的保存时的时间戳 从1970/01/01 08:00:00到当前时间的秒数 */
createTime: number;
/**文件大小 单位B */
size: number;
}
interface FileInfoParam extends CallbackParam {
/**文件路径 */
filePath: string;
success?: (res?: { errMsg: string, size: number, createTime: number }) => void;
}
interface RemoveFileParam extends CallbackParam {
/**需要删除的文件路径 */
filePath: string;
}
interface OpenDocumentParam extends CallbackParam {
/**文件路径 可通过 downFile 获得 */
filePath: string;
/**文件类型 指定文件类型打开文件 */
fileType?: 'doc' | 'xls' | 'ppt' | 'pdf' | 'docx' | 'xlsx' | 'pptx';
}
interface ChooseVideoParam extends CallbackParam {
/**album 从相册选视频 camera 使用相机拍摄 默认为:['album', 'camera'] */
sourceType?: Array<string>;
/**
* @since 1.6.0
* @description 是否压缩所选的视频源文件 默认值为true 需要压缩
*/
compressed?: boolean;
/**拍摄视频最长拍摄时间 单位秒 最长支持60秒 */
maxDuration?: number;
/**前置或者后置摄像头 默认为前后都有 即:['front', 'back'] */
camera?: Array<string>;
/**接口调用成功 返回视频文件的临时文件路径 */
success?: (res?: VideoInfo) => void;
}
interface AudioContext {
/**设置音频的地址 */
setSrc(src: string): void;
/**播放 */
play(): void;
/**暂停 */
pause(): void;
/**跳转到指定位置 单位 s */
seek(position: number): void;
}
interface InnerAudioContext {
/**音频的数据链接 用于直接播放 */
src: string;
/**开始播放的位置 单位:s 默认 0 */
startTime: number;
/**是否自动开始播放 默认 false */
autoplay: boolean;
/**是否循环播放 默认 false */
loop: boolean;
/**是否遵循系统静音开关 当此参数为 false 时 即使用户打开了静音开关 也能继续发出声音 默认值 true */
obeyMuteSwitch: boolean;
/**当前音频的长度 单位:s 只有在当前有合法的 src 时返回 */
readonly duration: number;
/**当前音频的播放位置 单位:s 只有在当前有合法的 src 时返回 时间不取整 保留小数点后 6 位 */
readonly currentTime: number;
/**当前是是否暂停或停止状态 true 表示暂停或停止 false 表示正在播放 */
readonly paused: boolean;
/**音频缓冲的时间点 仅保证当前播放时间点到此时间点内容已缓冲 */
readonly buffered: number;
/**播放 */
play(): void;
/**暂停 */
pause(): void;
/**停止 */
stop(): void;
/**跳转到指定位置 单位 s */
seek(position: number): void;
/**销毁当前实例 */
destroy(): void;
/**音频进入可以播放状态 但不保证后面可以流畅播放 */
onCanplay: () => void;
/**音频播放事件 */
onPlay: () => void;
/**音频暂停事件 */
onPause: () => void;
/**音频停止事件 */
onStop: () => void;
/**音频自然播放结束事件 */
onEnded: () => void;
/**音频播放进度更新事件 */
onTimeUpdate: () => void;
/**音频播放错误事件 */
onError: () => void;
/**音频加载中事件 当音频因为数据不足 需要停下来加载时会触发 */
onWaiting: () => void;
/**音频进行 seek 操作事件 */
onSeeking: () => void;
/**音频完成 seek 操作事件 */
onSeeked: () => void;
}
interface VideoContext {
/**播放 */
play(): never;
/**暂停 */
pause(): never;
/**跳转到指定位置 单位 s */
seek(position: number): never;
/**发送弹幕 danmu 包含两个属性 text,color */
sendDanmu(danmu: { text: string, color: string }): never;
/**设置倍速播放 支持的倍率有 0.5/0.8/1.0/1.25/1.5 */
playbackRate(rate: number): never;
/**进入全屏 */
requestFullScreen(): never;
/**退出全屏 */
exitFullScreen(): never;
}
interface VideoInfo {
/**选定视频的临时文件路径 */
tempFilePath: string;
/**选定视频的时间长度 */
duration: number;
/**选定视频的数据量大小 */
size: number;
/**返回选定视频的长 */
height: number;
/**返回选定视频的宽 */
width: number;
}
interface CameraContext {
/**拍照 可指定质量 成功则返回图片 */
takePhoto(param: CameraContextTakePhotoParam): void;
/**开始录像 */
startRecord(param: CameraContextStartRecordParam): void;
/**结束录像 成功则返回封面与视频 */
stopRecord(param: CameraContextStopRecord): void;
}
interface CameraContextTakePhotoParam extends CallbackParam {
/**成像质量 值为high, normal, low 默认normal */
quality?: 'high' | 'normal' | 'low';
success?: (res?: { tempImagePath: string }) => void;
}
interface CameraContextStartRecordParam extends CallbackParam {
/**超过30s或页面onHide时会结束录像 */
timeoutCallback?: (res?: { tempThumbPath: string; tempVideoPath: string }) => void;
}
interface CameraContextStopRecord extends CallbackParam {
success?: (res?: { tempThumbPath: string; tempVideoPath: string }) => void;
}
interface SetStorageParam extends CallbackParam {
/**本地缓存中的指定的 key */
key: string;
/**需要存储的内容 */
data: any;
}
interface GetStorageParam extends CallbackParam {
/**本地缓存中的指定的 key */
key: string;
success: (res?: { data: any }) => void;
}
interface RemoveStorageParam extends CallbackParam {
key: string;
success?: (res?: { data: any }) => void;
}
interface StorageInfoParam extends CallbackParam {
success: (res?: { data: StorageInfo }) => void;
}
interface StorageInfo {
/**当前storage中所有的key */
keys: Array<string>;
/**当前占用的空间大小 单位kb */
currentSize: number;
/**限制的空间大小 单位kb */
limitSize: number;
}
interface GetLocationParam extends CallbackParam {
/**默认为 wgs84 返回 gps 坐标 gcj02 返回可用于wx.openLocation的坐标 */
type?: string;
/**接口调用成功的回调函数 */
success: (res?: LocationInfo) => void;
}
interface TranslateMarkerParam extends CallbackParam {
/**指定marker */
markerId: number;
/**指定marker移动到的目标点 */
destination: any;
/**移动过程中是否自动旋转marker */
autoRotate: boolean;
/**marker的旋转角度 */
rotate: number
/**动画持续时长 默认值1000ms 平移与旋转分别计算 */
duration?: number;
/**动画结束回调函数 */
animationEnd?: Function;
}
interface LocationInfo {
/**纬度 浮点数 范围为 -90~90 负数表示南纬 */
latitude: number;
/**经度 浮点数 范围为 -180~180 负数表示西经 */
longitude: number;
/**速度 浮点数 单位 m/s */
speed: number;
/**位置的精确度 */
accuracy: number;
/**高度 单位 m */
altitude: number;
/**垂直精度 单位 m Android 无法获取 返回 0 */
verticalAccuracy: number;
/**水平精度 单位 m */
horizontalAccuracy: number;
}
interface OpenLocationParam extends CallbackParam {
/**纬度 范围为 -90~90 负数表示南纬 */
latitude: number;
/**经度 范围为 -180~180 负数表示西经 */
longitude: number;
/**缩放比例 范围1~28 默认为28 */