@tarojs/taro-h5 3.3.17 → 3.4.0-beta.2

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.
Files changed (35) hide show
  1. package/dist/index.cjs.js +2890 -1176
  2. package/dist/index.js +2867 -1144
  3. package/dist/taroApis.js +1 -1
  4. package/package.json +6 -10
  5. package/src/api/base/system/index.ts +2 -2
  6. package/src/api/canvas/canvasGetImageData.ts +1 -3
  7. package/src/api/canvas/canvasPutImageData.ts +1 -3
  8. package/src/api/canvas/canvasToTempFilePath.ts +1 -3
  9. package/src/api/canvas/createCanvasContext.ts +1 -3
  10. package/src/api/canvas/index.ts +4 -4
  11. package/src/api/cloud/index.ts +1 -1
  12. package/src/api/device/accelerometer.ts +4 -6
  13. package/src/api/device/compass.ts +4 -11
  14. package/src/api/device/motion.ts +4 -11
  15. package/src/api/location/index.ts +1 -1
  16. package/src/api/media/audio/index.ts +12 -6
  17. package/src/api/media/image/chooseImage.ts +1 -3
  18. package/src/api/media/image/getImageInfo.ts +35 -0
  19. package/src/api/media/image/index.ts +3 -3
  20. package/src/api/media/image/previewImage.ts +101 -0
  21. package/src/api/network/download.ts +1 -3
  22. package/src/api/network/upload.ts +1 -3
  23. package/src/api/network/websocket/index.ts +12 -20
  24. package/src/api/network/websocket/socketTask.ts +1 -1
  25. package/src/api/storage/index.ts +58 -70
  26. package/src/api/taro.ts +4 -48
  27. package/src/api/ui/animation/index.ts +25 -21
  28. package/src/api/ui/interaction/index.ts +28 -24
  29. package/src/api/ui/pull-down-refresh.ts +2 -7
  30. package/src/api/ui/scroll/index.ts +9 -11
  31. package/src/api/utils/index.ts +17 -33
  32. package/src/api/wxml/nodesRef.ts +49 -0
  33. package/src/api/wxml/selectorQuery.ts +2 -48
  34. package/src/api/media/image/getImageInfo.js +0 -74
  35. package/src/api/media/image/previewImage.js +0 -98
package/dist/taroApis.js CHANGED
@@ -1 +1 @@
1
- module.exports = new Set(["EditorContext","addCard","addFileToFavorites","addInterceptor","addPhoneCalendar","addPhoneContact","addPhoneRepeatCalendar","addVideoToFavorites","advancedGeneralIdentify","animalClassify","arrayBufferToBase64","authPrivateMessage","authorize","authorizeForMiniProgram","base64ToArrayBuffer","canIUse","canvasGetImageData","canvasPutImageData","canvasToTempFilePath","carClassify","checkIsOpenAccessibility","checkIsSoterEnrolledInDevice","checkIsSupportFacialRecognition","checkIsSupportSoterAuthentication","checkSession","chooseAddress","chooseContact","chooseImage","chooseInvoice","chooseInvoiceTitle","chooseLicensePlate","chooseLocation","chooseMedia","chooseMessageFile","choosePoi","chooseVideo","clearStorage","clearStorageSync","closeBLEConnection","closeBluetoothAdapter","closeSocket","cloud","compressImage","compressVideo","connectSocket","connectWifi","createAnimation","createAudioContext","createBLEConnection","createBLEPeripheralServer","createCameraContext","createCanvasContext","createInnerAudioContext","createIntersectionObserver","createInterstitialAd","createLivePlayerContext","createLivePusherContext","createMapContext","createMediaAudioPlayer","createMediaContainer","createMediaRecorder","createOffscreenCanvas","createRewardedVideoAd","createSelectorQuery","createTCPSocket","createUDPSocket","createVKSession","createVideoContext","createVideoDecoder","createWebAudioContext","createWorker","disableAlertBeforeUnload","dishClassify","drawCanvas","enableAlertBeforeUnload","exitMiniProgram","exitVoIPChat","faceDetect","faceVerifyForPay","getAccountInfoSync","getApp","getAvailableAudioSources","getBLEDeviceCharacteristics","getBLEDeviceRSSI","getBLEDeviceServices","getBLEMTU","getBackgroundAudioManager","getBackgroundAudioPlayerState","getBackgroundFetchData","getBackgroundFetchToken","getBatteryInfo","getBatteryInfoSync","getBeacons","getBluetoothAdapterState","getBluetoothDevices","getChannelsLiveInfo","getChannelsLiveNoticeInfo","getClipboardData","getConnectedBluetoothDevices","getConnectedWifi","getCurrentInstance","getCurrentPages","getEnterOptionsSync","getExptInfoSync","getExtConfig","getExtConfigSync","getFileInfo","getFileSystemManager","getGroupEnterInfo","getHCEState","getImageInfo","getLaunchOptionsSync","getLocation","getLogManager","getMenuButtonBoundingClientRect","getNFCAdapter","getNetworkType","getOpenUserInfo","getPerformance","getRandomValues","getRealtimeLogManager","getRecorderManager","getSavedFileInfo","getSavedFileList","getScreenBrightness","getSelectedTextRange","getSetting","getShareInfo","getStorage","getStorageInfo","getStorageInfoSync","getStorageSync","getSwanId","getSystemInfo","getSystemInfoSync","getUpdateManager","getUserCryptoManager","getUserInfo","getUserProfile","getVideoInfo","getWeRunData","getWifiList","hideHomeButton","hideKeyboard","hideLoading","hideNavigationBarLoading","hideShareMenu","hideTabBar","hideTabBarRedDot","hideToast","imageAudit","initFaceDetect","initTabBarApis","isBluetoothDevicePaired","joinVoIPChat","loadFontFace","login","logoClassify","makeBluetoothPair","makePhoneCall","navigateBack","navigateBackMiniProgram","navigateBackSmartProgram","navigateTo","navigateToMiniProgram","navigateToSmartGameProgram","navigateToSmartProgram","nextTick","notifyBLECharacteristicValueChange","objectDetectIdentify","ocrBankCard","ocrDrivingLicense","ocrIdCard","ocrVehicleLicense","offAccelerometerChange","offAppHide","offAppShow","offAudioInterruptionBegin","offAudioInterruptionEnd","offBLECharacteristicValueChange","offBLEConnectionStateChange","offBLEMTUChange","offBLEPeripheralConnectionStateChanged","offBeaconServiceChange","offBeaconUpdate","offBluetoothAdapterStateChange","offBluetoothDeviceFound","offCompassChange","offCopyUrl","offDeviceMotionChange","offError","offGetWifiList","offGyroscopeChange","offHCEMessage","offKeyboardHeightChange","offLocalServiceDiscoveryStop","offLocalServiceFound","offLocalServiceLost","offLocalServiceResolveFail","offLocationChange","offLocationChangeError","offMemoryWarning","offPageNotFound","offThemeChange","offUnhandledRejection","offUserCaptureScreen","offVoIPChatInterrupted","offVoIPChatMembersChanged","offVoIPChatStateChanged","offVoIPVideoMembersChanged","offWifiConnected","offWindowResize","onAccelerometerChange","onAppHide","onAppShow","onAudioInterruptionBegin","onAudioInterruptionEnd","onBLECharacteristicValueChange","onBLEConnectionStateChange","onBLEMTUChange","onBLEPeripheralConnectionStateChanged","onBackgroundAudioPause","onBackgroundAudioPlay","onBackgroundAudioStop","onBackgroundFetchData","onBeaconServiceChange","onBeaconUpdate","onBluetoothAdapterStateChange","onBluetoothDeviceFound","onCompassChange","onCopyUrl","onDeviceMotionChange","onError","onGetWifiList","onGyroscopeChange","onHCEMessage","onKeyboardHeightChange","onLocalServiceDiscoveryStop","onLocalServiceFound","onLocalServiceLost","onLocalServiceResolveFail","onLocationChange","onLocationChangeError","onMemoryWarning","onNetworkStatusChange","onPageNotFound","onSocketClose","onSocketError","onSocketMessage","onSocketOpen","onThemeChange","onUnhandledRejection","onUserCaptureScreen","onVoIPChatInterrupted","onVoIPChatMembersChanged","onVoIPChatSpeakersChanged","onVoIPChatStateChanged","onVoIPVideoMembersChanged","onWifiConnected","onWindowResize","openBluetoothAdapter","openCard","openChannelsActivity","openChannelsEvent","openChannelsLive","openCustomerServiceChat","openDocument","openEmbeddedMiniProgram","openLocation","openSetting","openVideoEditor","pageScrollTo","pauseBackgroundAudio","pauseVoice","plantClassify","playBackgroundAudio","playVoice","pluginLogin","preloadSubPackage","previewImage","previewMedia","reLaunch","readBLECharacteristicValue","redirectTo","removeSavedFile","removeStorage","removeStorageSync","removeTabBarBadge","reportAnalytics","reportEvent","reportMonitor","reportPerformance","request","requestOrderPayment","requestPayment","requestPolymerPayment","requestSubscribeMessage","reserveChannelsLive","revokeBufferURL","saveFile","saveFileToDisk","saveImageToPhotosAlbum","saveVideoToPhotosAlbum","scanCode","seekBackgroundAudio","sendHCEMessage","sendSocketMessage","setBLEMTU","setBackgroundColor","setBackgroundFetchToken","setBackgroundTextStyle","setClipboardData","setEnable1v1Chat","setEnableDebug","setInnerAudioOption","setKeepScreenOn","setNavigationBarColor","setNavigationBarTitle","setPageInfo","setScreenBrightness","setStorage","setStorageSync","setTabBarBadge","setTabBarItem","setTabBarStyle","setTopBarText","setVisualEffectOnCapture","setWifiList","setWindowSize","shareFileMessage","shareToWeRun","shareVideoMessage","showActionSheet","showLoading","showModal","showNavigationBarLoading","showRedPackage","showShareImageMenu","showShareMenu","showTabBar","showTabBarRedDot","showToast","startAccelerometer","startBeaconDiscovery","startBluetoothDevicesDiscovery","startCompass","startDeviceMotionListening","startFacialRecognitionVerify","startFacialRecognitionVerifyAndUploadVideo","startGyroscope","startHCE","startLocalServiceDiscovery","startLocationUpdate","startLocationUpdateBackground","startPullDownRefresh","startRecord","startSoterAuthentication","startWifi","stopAccelerometer","stopBackgroundAudio","stopBeaconDiscovery","stopBluetoothDevicesDiscovery","stopCompass","stopDeviceMotionListening","stopFaceDetect","stopGyroscope","stopHCE","stopLocalServiceDiscovery","stopLocationUpdate","stopPullDownRefresh","stopRecord","stopVoice","stopWifi","subscribeVoIPVideoMembers","switchTab","textReview","textToAudio","updateShareMenu","updateVoIPChatMuteConfig","updateWeChatApp","vibrateLong","vibrateShort","writeBLECharacteristicValue"])
1
+ module.exports = new Set(["EditorContext","addCard","addFileToFavorites","addInterceptor","addPhoneCalendar","addPhoneContact","addPhoneRepeatCalendar","addVideoToFavorites","advancedGeneralIdentify","animalClassify","arrayBufferToBase64","authPrivateMessage","authorize","authorizeForMiniProgram","base64ToArrayBuffer","canIUse","canvasGetImageData","canvasPutImageData","canvasToTempFilePath","carClassify","checkIsOpenAccessibility","checkIsSoterEnrolledInDevice","checkIsSupportFacialRecognition","checkIsSupportSoterAuthentication","checkSession","chooseAddress","chooseContact","chooseImage","chooseInvoice","chooseInvoiceTitle","chooseLicensePlate","chooseLocation","chooseMedia","chooseMessageFile","choosePoi","chooseVideo","clearStorage","clearStorageSync","closeBLEConnection","closeBluetoothAdapter","closeSocket","cloud","compressImage","compressVideo","connectSocket","connectWifi","createAnimation","createAudioContext","createBLEConnection","createBLEPeripheralServer","createBufferURL","createCameraContext","createCanvasContext","createInnerAudioContext","createIntersectionObserver","createInterstitialAd","createLivePlayerContext","createLivePusherContext","createMapContext","createMediaAudioPlayer","createMediaContainer","createMediaRecorder","createOffscreenCanvas","createRewardedVideoAd","createSelectorQuery","createTCPSocket","createUDPSocket","createVKSession","createVideoContext","createVideoDecoder","createWebAudioContext","createWorker","disableAlertBeforeUnload","dishClassify","downloadFile","drawCanvas","enableAlertBeforeUnload","exitMiniProgram","exitVoIPChat","faceDetect","faceVerifyForPay","getAccountInfoSync","getApp","getAvailableAudioSources","getBLEDeviceCharacteristics","getBLEDeviceRSSI","getBLEDeviceServices","getBLEMTU","getBackgroundAudioManager","getBackgroundAudioPlayerState","getBackgroundFetchData","getBackgroundFetchToken","getBatteryInfo","getBatteryInfoSync","getBeacons","getBluetoothAdapterState","getBluetoothDevices","getChannelsLiveInfo","getChannelsLiveNoticeInfo","getClipboardData","getConnectedBluetoothDevices","getConnectedWifi","getCurrentInstance","getCurrentPages","getEnterOptionsSync","getExptInfoSync","getExtConfig","getExtConfigSync","getFileInfo","getFileSystemManager","getGroupEnterInfo","getHCEState","getImageInfo","getLaunchOptionsSync","getLocalIPAddress","getLocation","getLogManager","getMenuButtonBoundingClientRect","getNFCAdapter","getNetworkType","getOpenUserInfo","getPerformance","getRandomValues","getRealtimeLogManager","getRecorderManager","getSavedFileInfo","getSavedFileList","getScreenBrightness","getSelectedTextRange","getSetting","getShareInfo","getStorage","getStorageInfo","getStorageInfoSync","getStorageSync","getSwanId","getSystemInfo","getSystemInfoSync","getUpdateManager","getUserCryptoManager","getUserInfo","getUserProfile","getVideoInfo","getWeRunData","getWifiList","hideHomeButton","hideKeyboard","hideLoading","hideNavigationBarLoading","hideShareMenu","hideTabBar","hideTabBarRedDot","hideToast","imageAudit","initFaceDetect","initTabBarApis","isBluetoothDevicePaired","joinVoIPChat","loadFontFace","login","logoClassify","makeBluetoothPair","makePhoneCall","navigateBack","navigateBackMiniProgram","navigateBackSmartProgram","navigateTo","navigateToMiniProgram","navigateToSmartGameProgram","navigateToSmartProgram","nextTick","notifyBLECharacteristicValueChange","objectDetectIdentify","ocrBankCard","ocrDrivingLicense","ocrIdCard","ocrVehicleLicense","offAccelerometerChange","offAppHide","offAppShow","offAudioInterruptionBegin","offAudioInterruptionEnd","offBLECharacteristicValueChange","offBLEConnectionStateChange","offBLEMTUChange","offBLEPeripheralConnectionStateChanged","offBeaconServiceChange","offBeaconUpdate","offBluetoothAdapterStateChange","offBluetoothDeviceFound","offCompassChange","offCopyUrl","offDeviceMotionChange","offError","offGetWifiList","offGyroscopeChange","offHCEMessage","offKeyboardHeightChange","offLocalServiceDiscoveryStop","offLocalServiceFound","offLocalServiceLost","offLocalServiceResolveFail","offLocationChange","offLocationChangeError","offMemoryWarning","offNetworkStatusChange","offPageNotFound","offThemeChange","offUnhandledRejection","offUserCaptureScreen","offVoIPChatInterrupted","offVoIPChatMembersChanged","offVoIPChatStateChanged","offVoIPVideoMembersChanged","offWifiConnected","offWindowResize","onAccelerometerChange","onAppHide","onAppShow","onAudioInterruptionBegin","onAudioInterruptionEnd","onBLECharacteristicValueChange","onBLEConnectionStateChange","onBLEMTUChange","onBLEPeripheralConnectionStateChanged","onBackgroundAudioPause","onBackgroundAudioPlay","onBackgroundAudioStop","onBackgroundFetchData","onBeaconServiceChange","onBeaconUpdate","onBluetoothAdapterStateChange","onBluetoothDeviceFound","onCompassChange","onCopyUrl","onDeviceMotionChange","onError","onGetWifiList","onGyroscopeChange","onHCEMessage","onKeyboardHeightChange","onLocalServiceDiscoveryStop","onLocalServiceFound","onLocalServiceLost","onLocalServiceResolveFail","onLocationChange","onLocationChangeError","onMemoryWarning","onNetworkStatusChange","onPageNotFound","onSocketClose","onSocketError","onSocketMessage","onSocketOpen","onThemeChange","onUnhandledRejection","onUserCaptureScreen","onVoIPChatInterrupted","onVoIPChatMembersChanged","onVoIPChatSpeakersChanged","onVoIPChatStateChanged","onVoIPVideoMembersChanged","onWifiConnected","onWindowResize","openBluetoothAdapter","openCard","openChannelsActivity","openChannelsEvent","openChannelsLive","openCustomerServiceChat","openDocument","openEmbeddedMiniProgram","openLocation","openSetting","openVideoEditor","pageScrollTo","pauseBackgroundAudio","pauseVoice","plantClassify","playBackgroundAudio","playVoice","pluginLogin","preloadSubPackage","previewImage","previewMedia","reLaunch","readBLECharacteristicValue","redirectTo","removeSavedFile","removeStorage","removeStorageSync","removeTabBarBadge","reportAnalytics","reportEvent","reportMonitor","reportPerformance","request","requestOrderPayment","requestPayment","requestPolymerPayment","requestSubscribeMessage","reserveChannelsLive","revokeBufferURL","saveFile","saveFileToDisk","saveImageToPhotosAlbum","saveVideoToPhotosAlbum","scanCode","seekBackgroundAudio","sendHCEMessage","sendSocketMessage","setBLEMTU","setBackgroundColor","setBackgroundFetchToken","setBackgroundTextStyle","setClipboardData","setEnable1v1Chat","setEnableDebug","setInnerAudioOption","setKeepScreenOn","setNavigationBarColor","setNavigationBarTitle","setPageInfo","setScreenBrightness","setStorage","setStorageSync","setTabBarBadge","setTabBarItem","setTabBarStyle","setTopBarText","setVisualEffectOnCapture","setWifiList","setWindowSize","shareFileMessage","shareToWeRun","shareVideoMessage","showActionSheet","showLoading","showModal","showNavigationBarLoading","showRedPackage","showShareImageMenu","showShareMenu","showTabBar","showTabBarRedDot","showToast","startAccelerometer","startBeaconDiscovery","startBluetoothDevicesDiscovery","startCompass","startDeviceMotionListening","startFacialRecognitionVerify","startFacialRecognitionVerifyAndUploadVideo","startGyroscope","startHCE","startLocalServiceDiscovery","startLocationUpdate","startLocationUpdateBackground","startPullDownRefresh","startRecord","startSoterAuthentication","startWifi","stopAccelerometer","stopBackgroundAudio","stopBeaconDiscovery","stopBluetoothDevicesDiscovery","stopCompass","stopDeviceMotionListening","stopFaceDetect","stopGyroscope","stopHCE","stopLocalServiceDiscovery","stopLocationUpdate","stopPullDownRefresh","stopRecord","stopVoice","stopWifi","subscribeVoIPVideoMembers","switchTab","textReview","textToAudio","updateShareMenu","updateVoIPChatMuteConfig","updateWeChatApp","uploadFile","vibrateLong","vibrateShort","writeBLECharacteristicValue"])
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/taro-h5",
3
- "version": "3.3.17",
3
+ "version": "3.4.0-beta.2",
4
4
  "description": "Taro h5 framework",
5
5
  "main:h5": "dist/index.js",
6
6
  "main": "dist/index.cjs.js",
@@ -32,18 +32,14 @@
32
32
  "author": "O2Team",
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "@tarojs/api": "3.3.17",
36
- "@tarojs/router": "3.3.17",
37
- "@tarojs/runtime": "3.3.17",
38
- "@tarojs/taro": "3.3.17",
35
+ "@tarojs/api": "3.4.0-beta.2",
36
+ "@tarojs/router": "3.4.0-beta.2",
37
+ "@tarojs/runtime": "3.4.0-beta.2",
38
+ "@tarojs/taro": "3.4.0-beta.2",
39
39
  "base64-js": "^1.3.0",
40
40
  "jsonp-retry": "^1.0.3",
41
41
  "mobile-detect": "^1.4.2",
42
- "raf": "^3.4.1",
43
42
  "whatwg-fetch": "^3.4.0"
44
43
  },
45
- "devDependencies": {
46
- "jest-fetch-mock": "^3.0.3"
47
- },
48
- "gitHead": "3f3ce5f66d370b1982a30e4a5f2c8eb383652063"
44
+ "gitHead": "ac3eb29f11aec15d25e061775d9e970efabc2c98"
49
45
  }
@@ -1,2 +1,2 @@
1
- export { getSystemInfo, getSystemInfoSync } from './info'
2
- export { getNetworkType, onNetworkStatusChange } from './network'
1
+ export * from './info'
2
+ export * from './network'
@@ -5,7 +5,7 @@ import { findDOM } from '../utils'
5
5
  /**
6
6
  * 获取 canvas 区域隐含的像素数据。
7
7
  */
8
- const canvasGetImageData: typeof Taro.canvasGetImageData = ({ canvasId, success, fail, complete, x, y, width, height }, inst) => {
8
+ export const canvasGetImageData: typeof Taro.canvasGetImageData = ({ canvasId, success, fail, complete, x, y, width, height }, inst) => {
9
9
  const handle = new MethodHandler({ name: 'canvasGetImageData', success, fail, complete })
10
10
  const el = findDOM(inst) as HTMLElement
11
11
  const canvas = el?.querySelector(`canvas[canvas-id="${canvasId}"]`) as HTMLCanvasElement
@@ -25,5 +25,3 @@ const canvasGetImageData: typeof Taro.canvasGetImageData = ({ canvasId, success,
25
25
  })
26
26
  }
27
27
  }
28
-
29
- export default canvasGetImageData
@@ -6,7 +6,7 @@ import { findDOM } from '../utils'
6
6
  * 将像素数据绘制到画布。在自定义组件下,第二个参数传入自定义组件实例 this,以操作组件内 <canvas> 组件
7
7
  * @todo 暂未支持尺寸相关功能
8
8
  */
9
- const canvasPutImageData: typeof Taro.canvasPutImageData = ({ canvasId, data, x, y, success, fail, complete }, inst) => {
9
+ export const canvasPutImageData: typeof Taro.canvasPutImageData = ({ canvasId, data, x, y, success, fail, complete }, inst) => {
10
10
  const handle = new MethodHandler({ name: 'canvasPutImageData', success, fail, complete })
11
11
  const el = findDOM(inst) as HTMLElement
12
12
  const canvas = el?.querySelector(`canvas[canvas-id="${canvasId}"]`) as HTMLCanvasElement
@@ -22,5 +22,3 @@ const canvasPutImageData: typeof Taro.canvasPutImageData = ({ canvasId, data, x,
22
22
  })
23
23
  }
24
24
  }
25
-
26
- export default canvasPutImageData
@@ -6,7 +6,7 @@ import { MethodHandler } from '../utils/handler'
6
6
  * 把当前画布指定区域的内容导出生成指定大小的图片。在 draw() 回调里调用该方法才能保证图片导出成功。
7
7
  * @todo 暂未支持尺寸相关功能
8
8
  */
9
- const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = ({ canvasId, fileType, quality, success, fail, complete }, inst) => {
9
+ export const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = ({ canvasId, fileType, quality, success, fail, complete }, inst) => {
10
10
  const handle = new MethodHandler({ name: 'canvasToTempFilePath', success, fail, complete })
11
11
  const el = findDOM(inst) as HTMLElement
12
12
  const canvas = el?.querySelector(`canvas[canvas-id="${canvasId}"]`) as HTMLCanvasElement
@@ -22,5 +22,3 @@ const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = ({ canvasId, file
22
22
  })
23
23
  }
24
24
  }
25
-
26
- export default canvasToTempFilePath
@@ -5,7 +5,7 @@ import { CanvasContext } from './CanvasContext'
5
5
  /**
6
6
  * 创建 canvas 的绘图上下文 CanvasContext 对象
7
7
  */
8
- const createCanvasContext: typeof Taro.createCanvasContext = (canvasId, inst) => {
8
+ export const createCanvasContext: typeof Taro.createCanvasContext = (canvasId, inst) => {
9
9
  const context = new CanvasContext()
10
10
  const el = findDOM(inst) as HTMLElement
11
11
  const canvas = el?.querySelector(`canvas[canvas-id="${canvasId}"]`) as HTMLCanvasElement
@@ -16,5 +16,3 @@ const createCanvasContext: typeof Taro.createCanvasContext = (canvasId, inst) =>
16
16
 
17
17
  return context
18
18
  }
19
-
20
- export default createCanvasContext
@@ -2,9 +2,9 @@ import { temporarilyNotSupport } from '../utils'
2
2
 
3
3
  // 画布
4
4
  export const createOffscreenCanvas = temporarilyNotSupport('createOffscreenCanvas')
5
- export { default as createCanvasContext } from './createCanvasContext'
6
- export { default as canvasToTempFilePath } from './canvasToTempFilePath'
7
- export { default as canvasPutImageData } from './canvasPutImageData'
8
- export { default as canvasGetImageData } from './canvasGetImageData'
5
+ export * from './createCanvasContext'
6
+ export * from './canvasToTempFilePath'
7
+ export * from './canvasPutImageData'
8
+ export * from './canvasGetImageData'
9
9
 
10
10
  export const drawCanvas = temporarilyNotSupport('drawCanvas')
@@ -2,7 +2,7 @@ import Taro from '@tarojs/api'
2
2
  import { temporarilyNotSupport } from '../utils'
3
3
 
4
4
  export class cloud implements Taro.cloud {
5
- Cloud: new (options: Taro.cloud.IOptions) => Taro.Cloud;
5
+ Cloud: new (options: Taro.cloud.IOptions) => Taro.Cloud
6
6
 
7
7
  init = temporarilyNotSupport('cloud.init')
8
8
 
@@ -7,7 +7,7 @@ let devicemotionListener
7
7
  /**
8
8
  * 停止监听加速度数据。
9
9
  */
10
- const stopAccelerometer: typeof Taro.stopAccelerometer = ({ success, fail, complete } = {}) => {
10
+ export const stopAccelerometer: typeof Taro.stopAccelerometer = ({ success, fail, complete } = {}) => {
11
11
  const res: Partial<TaroGeneral.CallbackResult> = {}
12
12
  const handle = new MethodHandler({ name: 'stopAccelerometer', success, fail, complete })
13
13
  try {
@@ -53,7 +53,7 @@ const getDevicemotionListener = interval => {
53
53
  /**
54
54
  * 开始监听加速度数据。
55
55
  */
56
- const startAccelerometer: typeof Taro.startAccelerometer = ({ interval = 'normal', success, fail, complete } = {}) => {
56
+ export const startAccelerometer: typeof Taro.startAccelerometer = ({ interval = 'normal', success, fail, complete } = {}) => {
57
57
  const handle = new MethodHandler({ name: 'startAccelerometer', success, fail, complete })
58
58
  try {
59
59
  if (window.DeviceMotionEvent) {
@@ -75,15 +75,13 @@ const startAccelerometer: typeof Taro.startAccelerometer = ({ interval = 'normal
75
75
  /**
76
76
  * 监听加速度数据事件。频率根据 Taro.startAccelerometer() 的 interval 参数。可使用 Taro.stopAccelerometer() 停止监听。
77
77
  */
78
- const onAccelerometerChange: typeof Taro.onAccelerometerChange = callback => {
78
+ export const onAccelerometerChange: typeof Taro.onAccelerometerChange = callback => {
79
79
  callbackManager.add(callback)
80
80
  }
81
81
 
82
82
  /**
83
83
  * 取消监听加速度数据事件,参数为空,则取消所有的事件监听
84
84
  */
85
- const offAccelerometerChange: typeof Taro.offAccelerometerChange = callback => {
85
+ export const offAccelerometerChange: typeof Taro.offAccelerometerChange = callback => {
86
86
  callbackManager.remove(callback)
87
87
  }
88
-
89
- export { stopAccelerometer, startAccelerometer, onAccelerometerChange, offAccelerometerChange }
@@ -7,7 +7,7 @@ let compassListener
7
7
  /**
8
8
  * 停止监听罗盘数据
9
9
  */
10
- const stopCompass: typeof Taro.stopCompass = ({ success, fail, complete } = {}) => {
10
+ export const stopCompass: typeof Taro.stopCompass = ({ success, fail, complete } = {}) => {
11
11
  const handle = new MethodHandler({ name: 'stopCompass', success, fail, complete })
12
12
  try {
13
13
  window.removeEventListener('deviceorientation', compassListener, true)
@@ -34,7 +34,7 @@ const getDeviceOrientationListener = interval => {
34
34
  /**
35
35
  * 开始监听罗盘数据
36
36
  */
37
- const startCompass: typeof Taro.startCompass = ({ success, fail, complete } = {}) => {
37
+ export const startCompass: typeof Taro.startCompass = ({ success, fail, complete } = {}) => {
38
38
  const handle = new MethodHandler({ name: 'startCompass', success, fail, complete })
39
39
  try {
40
40
  if (window.DeviceOrientationEvent) {
@@ -55,20 +55,13 @@ const startCompass: typeof Taro.startCompass = ({ success, fail, complete } = {}
55
55
  /**
56
56
  * 监听罗盘数据变化事件。频率:5 次/秒,接口调用后会自动开始监听,可使用 wx.stopCompass 停止监听。
57
57
  */
58
- const onCompassChange: typeof Taro.onCompassChange = callback => {
58
+ export const onCompassChange: typeof Taro.onCompassChange = callback => {
59
59
  callbackManager.add(callback)
60
60
  }
61
61
 
62
62
  /**
63
63
  * 取消监听罗盘数据变化事件,参数为空,则取消所有的事件监听。
64
64
  */
65
- const offCompassChange: typeof Taro.offCompassChange = callback => {
65
+ export const offCompassChange: typeof Taro.offCompassChange = callback => {
66
66
  callbackManager.remove(callback)
67
67
  }
68
-
69
- export {
70
- stopCompass,
71
- startCompass,
72
- onCompassChange,
73
- offCompassChange
74
- }
@@ -22,7 +22,7 @@ const INTERVAL_MAP = {
22
22
  /**
23
23
  * 停止监听设备方向的变化。
24
24
  */
25
- const stopDeviceMotionListening: typeof Taro.stopDeviceMotionListening = ({ success, fail, complete } = {}) => {
25
+ export const stopDeviceMotionListening: typeof Taro.stopDeviceMotionListening = ({ success, fail, complete } = {}) => {
26
26
  const handle = new MethodHandler({ name: 'stopDeviceMotionListening', success, fail, complete })
27
27
  try {
28
28
  window.removeEventListener('deviceorientation', deviceMotionListener, true)
@@ -51,7 +51,7 @@ const getDeviceOrientationListener = interval => {
51
51
  /**
52
52
  * 开始监听设备方向的变化。
53
53
  */
54
- const startDeviceMotionListening: typeof Taro.startDeviceMotionListening = ({ interval = 'normal', success, fail, complete } = {}) => {
54
+ export const startDeviceMotionListening: typeof Taro.startDeviceMotionListening = ({ interval = 'normal', success, fail, complete } = {}) => {
55
55
  const handle = new MethodHandler({ name: 'startDeviceMotionListening', success, fail, complete })
56
56
  try {
57
57
  const intervalObj = INTERVAL_MAP[interval]
@@ -73,20 +73,13 @@ const startDeviceMotionListening: typeof Taro.startDeviceMotionListening = ({ in
73
73
  /**
74
74
  * 监听设备方向变化事件。
75
75
  */
76
- const onDeviceMotionChange: typeof Taro.onDeviceMotionChange = callback => {
76
+ export const onDeviceMotionChange: typeof Taro.onDeviceMotionChange = callback => {
77
77
  callbackManager.add(callback)
78
78
  }
79
79
 
80
80
  /**
81
81
  * 取消监听设备方向变化事件,参数为空,则取消所有的事件监听。
82
82
  */
83
- const offDeviceMotionChange: typeof Taro.offDeviceMotionChange = callback => {
83
+ export const offDeviceMotionChange: typeof Taro.offDeviceMotionChange = callback => {
84
84
  callbackManager.remove(callback)
85
85
  }
86
-
87
- export {
88
- stopDeviceMotionListening,
89
- startDeviceMotionListening,
90
- onDeviceMotionChange,
91
- offDeviceMotionChange
92
- }
@@ -16,4 +16,4 @@ export const getLocation = processOpenApi('getLocation')
16
16
 
17
17
  export const choosePoi = temporarilyNotSupport('choosePoi')
18
18
 
19
- export { chooseLocation } from './chooseLocation'
19
+ export * from './chooseLocation'
@@ -16,24 +16,30 @@ class InnerAudioContext implements Taro.InnerAudioContext {
16
16
  Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })
17
17
  }
18
18
 
19
- set autoplay (e) { Object.defineProperty(this.Instance, 'autoplay', { value: e }) }
19
+ set autoplay (e) { this.setProperty('autoplay', e) }
20
20
  get autoplay () { return this.Instance?.autoplay || false }
21
21
  get buffered () { return this.Instance?.buffered.length || 0 }
22
22
  get currentTime () { return this.Instance?.currentTime || 0 }
23
23
  get duration () { return this.Instance?.duration || 0 }
24
- set loop (e) { Object.defineProperty(this.Instance, 'loop', { value: e }) }
24
+ set loop (e) { this.setProperty('loop', e) }
25
25
  get loop () { return this.Instance?.loop || false }
26
26
  get paused () { return this.Instance?.paused || true }
27
- set src (e) { Object.defineProperty(this.Instance, 'src', { value: e }) }
27
+ set src (e) { this.setProperty('src', e) }
28
28
  get src () { return this.Instance?.src || '' }
29
- set volume (e) { Object.defineProperty(this.Instance, 'volume', { value: e }) }
29
+ set volume (e) { this.setProperty('volume', e) }
30
30
  get volume () { return this.Instance?.volume || 0 }
31
- set playbackRate (e) { Object.defineProperty(this.Instance, 'playbackRate', { value: e }) }
31
+ set playbackRate (e) { this.setProperty('playbackRate', e) }
32
32
  get playbackRate () { return this.Instance?.volume || 0 }
33
33
  get obeyMuteSwitch () { return true }
34
- set startTime (e) { Object.defineProperty(this.Instance, 'startTime', { value: e }) }
34
+ set startTime (e) { this.setProperty('startTime', e) }
35
35
  get startTime () { return this.Instance?.volume || 0 }
36
36
 
37
+ private setProperty (key: string, value: unknown) {
38
+ if (this.Instance) {
39
+ this.Instance[key] = value
40
+ }
41
+ }
42
+
37
43
  play = () => this.Instance?.play()
38
44
 
39
45
  pause = () => this.Instance?.pause()
@@ -6,7 +6,7 @@ import { shouldBeObject, getParameterError } from '../../utils'
6
6
  /**
7
7
  * 从本地相册选择图片或使用相机拍照。
8
8
  */
9
- const chooseImage: typeof Taro.chooseImage = function (options) {
9
+ export const chooseImage: typeof Taro.chooseImage = function (options) {
10
10
  // options must be an Object
11
11
  const isObject = shouldBeObject(options)
12
12
  if (!isObject.flag) {
@@ -76,5 +76,3 @@ const chooseImage: typeof Taro.chooseImage = function (options) {
76
76
  }
77
77
  })
78
78
  }
79
-
80
- export default chooseImage
@@ -0,0 +1,35 @@
1
+ import Taro from '@tarojs/api'
2
+
3
+ import { shouldBeObject } from '../../utils'
4
+ import { MethodHandler } from '../../utils/handler'
5
+
6
+ /**
7
+ * 获取图片信息。网络图片需先配置download域名才能生效。
8
+ */
9
+ export const getImageInfo: typeof Taro.getImageInfo = (options) => {
10
+ // options must be an Object
11
+ const isObject = shouldBeObject(options)
12
+ if (!isObject.flag) {
13
+ const res = { errMsg: `getImageInfo:fail ${isObject.msg}` }
14
+ console.error(res.errMsg)
15
+ return Promise.reject(res)
16
+ }
17
+
18
+ const { src, success, fail, complete } = options
19
+ const handle = new MethodHandler({ name: 'getImageInfo', success, fail, complete })
20
+ return new Promise((resolve, reject) => {
21
+ const image = new Image()
22
+ image.onload = () => {
23
+ handle.success({
24
+ width: image.naturalWidth,
25
+ height: image.naturalHeight
26
+ }, resolve)
27
+ }
28
+ image.onerror = (e: any) => {
29
+ handle.fail({
30
+ errMsg: e.message
31
+ }, reject)
32
+ }
33
+ image.src = src
34
+ })
35
+ }
@@ -4,10 +4,10 @@ import { temporarilyNotSupport } from '../../utils'
4
4
  export const saveImageToPhotosAlbum = temporarilyNotSupport('saveImageToPhotosAlbum')
5
5
  export const previewMedia = temporarilyNotSupport('previewMedia')
6
6
 
7
- export { previewImage } from './previewImage'
8
- export { default as getImageInfo } from './getImageInfo'
7
+ export * from './previewImage'
8
+ export * from './getImageInfo'
9
9
 
10
10
  export const compressImage = temporarilyNotSupport('compressImage')
11
11
  export const chooseMessageFile = temporarilyNotSupport('chooseMessageFile')
12
12
 
13
- export { default as chooseImage } from './chooseImage'
13
+ export * from './chooseImage'
@@ -0,0 +1,101 @@
1
+ import Taro from '@tarojs/taro'
2
+
3
+ import { shouldBeObject } from '../../utils'
4
+ import { MethodHandler } from '../../utils/handler'
5
+
6
+ /**
7
+ * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!
8
+ */
9
+
10
+ /**
11
+ * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。
12
+ */
13
+ export const previewImage: typeof Taro.previewImage = async (options) => {
14
+ function loadImage (url: string, loadFail: typeof fail): Promise<Node> {
15
+ return new Promise((resolve) => {
16
+ const item = document.createElement('taro-swiper-item-core')
17
+ item.style.cssText = `
18
+ display: flex;
19
+ align-items: start;
20
+ justify-content: center;
21
+ overflow-y: scroll;
22
+ `
23
+ const image = new Image()
24
+ image.style.maxWidth = '100%'
25
+ image.src = url
26
+ const div = document.createElement('div')
27
+ div.style.cssText = `
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ max-width: 100%;
32
+ min-height: 100%;
33
+ `
34
+ div.appendChild(image)
35
+ item.appendChild(div)
36
+ // Note: 等待图片加载完后返回,会导致轮播被卡住
37
+ resolve(item)
38
+ if (typeof loadFail === 'function') {
39
+ image.addEventListener('error', (err) => {
40
+ loadFail({ errMsg: err.message })
41
+ })
42
+ }
43
+ })
44
+ }
45
+
46
+ // options must be an Object
47
+ const isObject = shouldBeObject(options)
48
+ if (!isObject.flag) {
49
+ const res = { errMsg: `previewImage:fail ${isObject.msg}` }
50
+ console.error(res.errMsg)
51
+ return Promise.reject(res)
52
+ }
53
+
54
+ const { urls = [], current = '', success, fail, complete } = options
55
+ const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })
56
+ const container = document.createElement('div')
57
+ container.classList.add('preview-image')
58
+ container.style.cssText = `
59
+ position: fixed;
60
+ top: 0;
61
+ left: 0;
62
+ z-index: 1050;
63
+ width: 100%;
64
+ height: 100%;
65
+ overflow: hidden;
66
+ outline: 0;
67
+ background-color: #111;
68
+ `
69
+ container.addEventListener('click', () => {
70
+ container.remove()
71
+ })
72
+
73
+ const swiper = document.createElement('taro-swiper-core')
74
+ // @ts-ignore
75
+ swiper.full = true
76
+
77
+ let children: Node[] = []
78
+ try {
79
+ children = await Promise.all(
80
+ urls.map(e => loadImage(e, fail))
81
+ )
82
+ } catch (error) {
83
+ return handle.fail({
84
+ errMsg: error
85
+ })
86
+ }
87
+
88
+ for (let i = 0; i < children.length; i++) {
89
+ const child = children[i]
90
+ swiper.appendChild(child)
91
+ }
92
+
93
+ const currentIndex = urls.indexOf(current)
94
+ // @ts-ignore
95
+ swiper.current = currentIndex
96
+
97
+ container.appendChild(swiper)
98
+ document.body.appendChild(container)
99
+
100
+ return handle.success()
101
+ }
@@ -113,7 +113,7 @@ const createDownloadTask = ({ url, header, success, error }): Taro.DownloadTask
113
113
  * 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径。使用前请注意阅读相关说明。
114
114
  * 注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。
115
115
  */
116
- const downloadFile: typeof Taro.downloadFile = ({ url, header, success, fail, complete }) => {
116
+ export const downloadFile: typeof Taro.downloadFile = ({ url, header, success, fail, complete }) => {
117
117
  let task: Taro.DownloadTask
118
118
  const result: ReturnType<typeof Taro.downloadFile> = new Promise((resolve, reject) => {
119
119
  task = createDownloadTask({
@@ -138,5 +138,3 @@ const downloadFile: typeof Taro.downloadFile = ({ url, header, success, fail, co
138
138
 
139
139
  return result
140
140
  }
141
-
142
- export default downloadFile
@@ -142,7 +142,7 @@ const createUploadTask = ({ url, filePath, formData, name, header, timeout, file
142
142
  /**
143
143
  * 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。使用前请注意阅读相关说明。
144
144
  */
145
- const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formData, timeout, fileName, success, fail, complete }) => {
145
+ export const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formData, timeout, fileName, success, fail, complete }) => {
146
146
  let task: Taro.UploadTask
147
147
  const result: ReturnType<typeof Taro.uploadFile> = new Promise((resolve, reject) => {
148
148
  task = createUploadTask({
@@ -172,5 +172,3 @@ const uploadFile: typeof Taro.uploadFile = ({ url, filePath, name, header, formD
172
172
 
173
173
  return result
174
174
  }
175
-
176
- export default uploadFile
@@ -1,31 +1,31 @@
1
- import SocketTask from './socketTask'
1
+ import { SocketTask } from './socketTask'
2
2
  import { shouldBeObject, getParameterError } from '../../utils'
3
3
  import { MethodHandler } from 'src/api/utils/handler'
4
4
 
5
5
  let socketTasks: SocketTask[] = []
6
6
  let socketsCounter = 1
7
7
 
8
- function sendSocketMessage () {
8
+ export function sendSocketMessage () {
9
9
  console.warn('Deprecated.Please use socketTask.send instead.')
10
10
  }
11
11
 
12
- function onSocketOpen () {
12
+ export function onSocketOpen () {
13
13
  console.warn('Deprecated.Please use socketTask.onOpen instead.')
14
14
  }
15
15
 
16
- function onSocketMessage () {
16
+ export function onSocketMessage () {
17
17
  console.warn('Deprecated.Please use socketTask.onMessage instead.')
18
18
  }
19
19
 
20
- function onSocketError () {
20
+ export function onSocketError () {
21
21
  console.warn('Deprecated.Please use socketTask.onError instead.')
22
22
  }
23
23
 
24
- function onSocketClose () {
24
+ export function onSocketClose () {
25
25
  console.warn('Deprecated.Please use socketTask.onClose instead.')
26
26
  }
27
27
 
28
- function connectSocket (options) {
28
+ export function connectSocket (options) {
29
29
  const name = 'connectSocket'
30
30
 
31
31
  return new Promise((resolve, reject) => {
@@ -75,22 +75,14 @@ function connectSocket (options) {
75
75
  }
76
76
  socketTasks.push(task)
77
77
 
78
- return handle.success({
78
+ handle.success({
79
79
  socketTaskId: socketsCounter++
80
- }, resolve)
80
+ })
81
+
82
+ return resolve(task)
81
83
  })
82
84
  }
83
85
 
84
- function closeSocket () {
86
+ export function closeSocket () {
85
87
  console.warn('Deprecated.Please use socketTask.close instead.')
86
88
  }
87
-
88
- export {
89
- sendSocketMessage,
90
- onSocketOpen,
91
- onSocketMessage,
92
- onSocketError,
93
- onSocketClose,
94
- connectSocket,
95
- closeSocket
96
- }
@@ -1,6 +1,6 @@
1
1
  import Taro from '@tarojs/api'
2
2
 
3
- export default class SocketTask {
3
+ export class SocketTask {
4
4
  ws: WebSocket
5
5
  CONNECTING: number
6
6
  OPEN: number