@tarojs/taro-h5 3.7.0-alpha.6 → 3.7.0-alpha.8

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.
@@ -24,7 +24,6 @@ class InnerAudioContext {
24
24
  this.destroy = () => {
25
25
  this.stop();
26
26
  if (this.Instance) {
27
- document.body.removeChild(this.Instance);
28
27
  this.Instance = undefined;
29
28
  }
30
29
  };
@@ -51,6 +50,7 @@ class InnerAudioContext {
51
50
  this.Instance = new Audio();
52
51
  this.errorStack = new CallbackManager();
53
52
  this.stopStack = new CallbackManager();
53
+ this.Instance.onerror = this.errorStack.trigger;
54
54
  Taro.eventCenter.on('__taroRouterChange', () => { this.stop(); });
55
55
  this.onPlay(() => {
56
56
  if (this.__isFirstPlay) {
@@ -1 +1 @@
1
- {"version":3,"file":"InnerAudioContext.js","sources":["../../../../src/api/media/audio/InnerAudioContext.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class InnerAudioContext implements Taro.InnerAudioContext {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n __isFirstPlay = true\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n\n Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })\n this.onPlay(() => {\n if (this.__isFirstPlay) {\n this.__isFirstPlay = false\n this.seek(this.startTime)\n }\n })\n }\n\n set autoplay (e) { this.setProperty('autoplay', e) }\n get autoplay () { return this.Instance?.autoplay || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n set currentTime (e) { this.seek(e) }\n get duration () { return this.Instance?.duration || 0 }\n set loop (e) { this.setProperty('loop', e) }\n get loop () { return this.Instance?.loop || false }\n get paused () { return this.Instance?.paused ?? true }\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set volume (e) { this.setProperty('volume', e) }\n get volume () { return this.Instance?.volume || 0 }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n set obeyMuteSwitch (_e) { permanentlyNotSupport('InnerAudioContext.obeyMuteSwitch')() }\n get obeyMuteSwitch () { return true }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n /**\n * @TODO destroy得并不干净\n */\n destroy = () => {\n this.stop()\n if (this.Instance) {\n document.body.removeChild(this.Instance)\n this.Instance = undefined\n }\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InnerAudioContext.js","sources":["../../../../src/api/media/audio/InnerAudioContext.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class InnerAudioContext implements Taro.InnerAudioContext {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n __isFirstPlay = true\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n\n Taro.eventCenter.on('__taroRouterChange', () => { this.stop() })\n this.onPlay(() => {\n if (this.__isFirstPlay) {\n this.__isFirstPlay = false\n this.seek(this.startTime)\n }\n })\n }\n\n set autoplay (e) { this.setProperty('autoplay', e) }\n get autoplay () { return this.Instance?.autoplay || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n set currentTime (e) { this.seek(e) }\n get duration () { return this.Instance?.duration || 0 }\n set loop (e) { this.setProperty('loop', e) }\n get loop () { return this.Instance?.loop || false }\n get paused () { return this.Instance?.paused ?? true }\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set volume (e) { this.setProperty('volume', e) }\n get volume () { return this.Instance?.volume || 0 }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n set obeyMuteSwitch (_e) { permanentlyNotSupport('InnerAudioContext.obeyMuteSwitch')() }\n get obeyMuteSwitch () { return true }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n /**\n * @TODO destroy得并不干净\n */\n destroy = () => {\n this.stop()\n if (this.Instance) {\n this.Instance = undefined\n }\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n}\n"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ class BackgroundAudioManager {
43
43
  this.Instance = new Audio();
44
44
  this.errorStack = new CallbackManager();
45
45
  this.stopStack = new CallbackManager();
46
+ this.Instance.onerror = this.errorStack.trigger;
46
47
  this.Instance.autoplay = true;
47
48
  this.onPlay(() => {
48
49
  if (this.currentTime !== this.startTime) {
@@ -1 +1 @@
1
- {"version":3,"file":"BackgroundAudioManager.js","sources":["../../../../src/api/media/background-audio/BackgroundAudioManager.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class BackgroundAudioManager implements Taro.BackgroundAudioManager {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.autoplay = true\n this.onPlay(() => {\n if (this.currentTime !== this.startTime) {\n this.seek(this.startTime)\n }\n })\n }\n\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set title (e) { this.dataset('title', e) }\n get title () { return this.Instance?.dataset.title || '' }\n set epname (e) { this.dataset('epname', e) }\n get epname () { return this.Instance?.dataset.epname || '' }\n set singer (e) { this.dataset('singer', e) }\n get singer () { return this.Instance?.dataset.singer || '' }\n set coverImgUrl (e) { this.dataset('coverImgUrl', e) }\n get coverImgUrl () { return this.Instance?.dataset.coverImgUrl || '' }\n set webUrl (e) { this.dataset('webUrl', e) }\n get webUrl () { return this.Instance?.dataset.webUrl || '' }\n set protocol (e) { this.dataset('protocol', e) }\n get protocol () { return this.Instance?.dataset.protocol || '' }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n get duration () { return this.Instance?.duration || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n get paused () { return this.Instance?.paused || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n private dataset (key: string, value: string) {\n if (this.Instance) {\n this.Instance.dataset[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onPrev = permanentlyNotSupport('BackgroundAudioManager.onPrev')\n onNext = permanentlyNotSupport('BackgroundAudioManager.onNext')\n\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offPrev = permanentlyNotSupport('BackgroundAudioManager.offPrev')\n offNext = permanentlyNotSupport('BackgroundAudioManager.offNext')\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackgroundAudioManager.js","sources":["../../../../src/api/media/background-audio/BackgroundAudioManager.ts"],"sourcesContent":["import Taro from '@tarojs/api'\n\nimport { permanentlyNotSupport } from '../../../utils'\nimport { CallbackManager } from '../../../utils/handler'\n\nexport class BackgroundAudioManager implements Taro.BackgroundAudioManager {\n Instance?: HTMLAudioElement\n errorStack: CallbackManager\n stopStack: CallbackManager\n __startTime = 0\n\n constructor () {\n this.Instance = new Audio()\n this.errorStack = new CallbackManager()\n this.stopStack = new CallbackManager()\n this.Instance.onerror = this.errorStack.trigger\n this.Instance.autoplay = true\n this.onPlay(() => {\n if (this.currentTime !== this.startTime) {\n this.seek(this.startTime)\n }\n })\n }\n\n set src (e) { this.setProperty('src', e) }\n get src () { return this.Instance?.src || '' }\n set startTime (e) { this.__startTime = e }\n get startTime () { return this.__startTime || 0 }\n set title (e) { this.dataset('title', e) }\n get title () { return this.Instance?.dataset.title || '' }\n set epname (e) { this.dataset('epname', e) }\n get epname () { return this.Instance?.dataset.epname || '' }\n set singer (e) { this.dataset('singer', e) }\n get singer () { return this.Instance?.dataset.singer || '' }\n set coverImgUrl (e) { this.dataset('coverImgUrl', e) }\n get coverImgUrl () { return this.Instance?.dataset.coverImgUrl || '' }\n set webUrl (e) { this.dataset('webUrl', e) }\n get webUrl () { return this.Instance?.dataset.webUrl || '' }\n set protocol (e) { this.dataset('protocol', e) }\n get protocol () { return this.Instance?.dataset.protocol || '' }\n set playbackRate (e) { this.setProperty('playbackRate', e) }\n get playbackRate () { return this.Instance?.playbackRate || 0 }\n get duration () { return this.Instance?.duration || 0 }\n get currentTime () { return this.Instance?.currentTime || 0 }\n get paused () { return this.Instance?.paused || false }\n get buffered () { return this.Instance?.buffered.length || 0 }\n set referrerPolicy (e) { this.Instance?.setAttribute('referrerpolicy', e) }\n get referrerPolicy () { return this.Instance?.getAttribute('referrerpolicy') || 'origin' }\n\n private setProperty (key: string, value: unknown) {\n if (this.Instance) {\n this.Instance[key] = value\n }\n }\n\n private dataset (key: string, value: string) {\n if (this.Instance) {\n this.Instance.dataset[key] = value\n }\n }\n\n play = () => this.Instance?.play()\n\n pause = () => this.Instance?.pause()\n\n seek = (position: number) => {\n if (this.Instance) {\n this.Instance.currentTime = position\n }\n }\n\n stop = () => {\n this.pause()\n this.seek(0)\n this.stopStack.trigger()\n }\n\n onCanplay = (callback = () => {}) => this.Instance?.addEventListener('canplay', callback)\n onWaiting = (callback = () => {}) => this.Instance?.addEventListener('waiting', callback)\n onError = (callback?: ((res: Taro.InnerAudioContext.onErrorDetail) => void)) => this.errorStack.add(callback)\n onPlay = (callback = () => {}) => this.Instance?.addEventListener('play', callback)\n onPause = (callback = () => {}) => this.Instance?.addEventListener('pause', callback)\n onSeeking = (callback = () => {}) => this.Instance?.addEventListener('seeking', callback)\n onSeeked = (callback = () => {}) => this.Instance?.addEventListener('seeked', callback)\n\n onEnded = (callback = () => {}) => this.Instance?.addEventListener('ended', callback)\n onStop = (callback = () => {}) => this.stopStack.add(callback)\n onTimeUpdate = (callback = () => {}) => this.Instance?.addEventListener('timeupdate', callback)\n onPrev = permanentlyNotSupport('BackgroundAudioManager.onPrev')\n onNext = permanentlyNotSupport('BackgroundAudioManager.onNext')\n\n offCanplay = (callback = () => {}) => this.Instance?.removeEventListener('canplay', callback)\n offWaiting = (callback = () => {}) => this.Instance?.removeEventListener('waiting', callback)\n offError = (callback = () => {}) => this.errorStack.remove(callback)\n offPlay = (callback = () => {}) => this.Instance?.removeEventListener('play', callback)\n offPause = (callback = () => {}) => this.Instance?.removeEventListener('pause', callback)\n offSeeking = (callback = () => {}) => this.Instance?.removeEventListener('seeking', callback)\n offSeeked = (callback = () => {}) => this.Instance?.removeEventListener('seeked', callback)\n\n offEnded = (callback = () => {}) => this.Instance?.removeEventListener('ended', callback)\n offStop = (callback = () => {}) => this.stopStack.remove(callback)\n offTimeUpdate = (callback = () => {}) => this.Instance?.removeEventListener('timeupdate', callback)\n offPrev = permanentlyNotSupport('BackgroundAudioManager.offPrev')\n offNext = permanentlyNotSupport('BackgroundAudioManager.offNext')\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from '../../../node_modules/.pnpm/registry.npmjs.org_tslib@2.5.0/node_modules/tslib/tslib.es6.js';
2
2
  import { defineCustomElementTaroSwiperCore, defineCustomElementTaroSwiperItemCore } from '@tarojs/components/dist/components';
3
+ import { eventCenter } from '@tarojs/runtime';
3
4
  import { isFunction } from '@tarojs/shared';
4
5
  import { shouldBeObject } from '../../../utils/index.js';
5
6
  import { MethodHandler } from '../../../utils/handler.js';
@@ -45,12 +46,16 @@ const previewImage = (options) => __awaiter(void 0, void 0, void 0, function* ()
45
46
  const { urls = [], current = '', success, fail, complete } = options;
46
47
  const handle = new MethodHandler({ name: 'previewImage', success, fail, complete });
47
48
  const container = document.createElement('div');
49
+ const removeHandler = () => {
50
+ eventCenter.off('__taroRouterChange', removeHandler);
51
+ container.remove();
52
+ };
53
+ // 路由改变后应该关闭预览框
54
+ eventCenter.on('__taroRouterChange', removeHandler);
48
55
  container.classList.add('preview-image');
49
56
  container.style.cssText =
50
57
  'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;';
51
- container.addEventListener('click', () => {
52
- container.remove();
53
- });
58
+ container.addEventListener('click', removeHandler);
54
59
  const swiper = document.createElement('taro-swiper-core');
55
60
  // @ts-ignore
56
61
  swiper.full = true;
@@ -1 +1 @@
1
- {"version":3,"file":"previewImage.js","sources":["../../../../src/api/media/image/previewImage.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { SwiperProps } from '@tarojs/components'\nimport {\n defineCustomElementTaroSwiperCore,\n defineCustomElementTaroSwiperItemCore,\n} from '@tarojs/components/dist/components'\nimport { isFunction } from '@tarojs/shared'\n\nimport { shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!\n */\n\n/**\n * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。\n */\nexport const previewImage: typeof Taro.previewImage = async (options) => {\n // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点\n defineCustomElementTaroSwiperCore()\n defineCustomElementTaroSwiperItemCore()\n\n function loadImage (url: string, loadFail: typeof fail): Promise<Node> {\n return new Promise((resolve) => {\n const item = document.createElement('taro-swiper-item-core')\n item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;'\n const image = new Image()\n image.style.maxWidth = '100%'\n image.src = url\n const div = document.createElement('div')\n div.classList.add('swiper-zoom-container')\n div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;'\n div.appendChild(image)\n item.appendChild(div)\n // Note: 等待图片加载完后返回,会导致轮播被卡住\n resolve(item)\n if (isFunction(loadFail)) {\n image.addEventListener('error', (err) => {\n loadFail({ errMsg: err.message })\n })\n }\n })\n }\n\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `previewImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { urls = [], current = '', success, fail, complete } = options\n const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })\n const container = document.createElement('div')\n container.classList.add('preview-image')\n container.style.cssText =\n 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;'\n container.addEventListener('click', () => {\n container.remove()\n })\n\n const swiper: HTMLElement & Omit<SwiperProps, 'style' | 'children'> = document.createElement('taro-swiper-core')\n // @ts-ignore\n swiper.full = true\n // @ts-ignore\n swiper.zoom = true\n\n let children: Node[] = []\n try {\n children = await Promise.all(urls.map((e) => loadImage(e, fail)))\n } catch (error) {\n return handle.fail({\n errMsg: error,\n })\n }\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n swiper.appendChild(child)\n }\n\n const currentIndex = typeof current === 'number' ? current : urls.indexOf(current)\n\n swiper.current = currentIndex\n\n container.appendChild(swiper)\n document.body.appendChild(container)\n\n return handle.success()\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"previewImage.js","sources":["../../../../src/api/media/image/previewImage.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { SwiperProps } from '@tarojs/components'\nimport {\n defineCustomElementTaroSwiperCore,\n defineCustomElementTaroSwiperItemCore,\n} from '@tarojs/components/dist/components'\nimport { eventCenter } from '@tarojs/runtime'\nimport { isFunction } from '@tarojs/shared'\n\nimport { shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢!\n */\n\n/**\n * 在新页面中全屏预览图片。预览的过程中用户可以进行保存图片、发送给朋友等操作。\n */\nexport const previewImage: typeof Taro.previewImage = async (options) => {\n // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点\n defineCustomElementTaroSwiperCore()\n defineCustomElementTaroSwiperItemCore()\n\n function loadImage (url: string, loadFail: typeof fail): Promise<Node> {\n return new Promise((resolve) => {\n const item = document.createElement('taro-swiper-item-core')\n item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;'\n const image = new Image()\n image.style.maxWidth = '100%'\n image.src = url\n const div = document.createElement('div')\n div.classList.add('swiper-zoom-container')\n div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;'\n div.appendChild(image)\n item.appendChild(div)\n // Note: 等待图片加载完后返回,会导致轮播被卡住\n resolve(item)\n if (isFunction(loadFail)) {\n image.addEventListener('error', (err) => {\n loadFail({ errMsg: err.message })\n })\n }\n })\n }\n\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `previewImage:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const { urls = [], current = '', success, fail, complete } = options\n const handle = new MethodHandler({ name: 'previewImage', success, fail, complete })\n const container = document.createElement('div')\n const removeHandler = () => {\n eventCenter.off('__taroRouterChange', removeHandler)\n container.remove()\n }\n // 路由改变后应该关闭预览框\n eventCenter.on('__taroRouterChange', removeHandler)\n\n container.classList.add('preview-image')\n container.style.cssText =\n 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;'\n container.addEventListener('click', removeHandler)\n\n const swiper: HTMLElement & Omit<SwiperProps, 'style' | 'children'> = document.createElement('taro-swiper-core')\n // @ts-ignore\n swiper.full = true\n // @ts-ignore\n swiper.zoom = true\n\n let children: Node[] = []\n try {\n children = await Promise.all(urls.map((e) => loadImage(e, fail)))\n } catch (error) {\n return handle.fail({\n errMsg: error,\n })\n }\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n swiper.appendChild(child)\n }\n\n const currentIndex = typeof current === 'number' ? current : urls.indexOf(current)\n\n swiper.current = currentIndex\n\n container.appendChild(swiper)\n document.body.appendChild(container)\n\n return handle.success()\n}\n"],"names":[],"mappings":"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"}
@@ -18,19 +18,21 @@ function generateRequestUrlWithParams(url = '', params) {
18
18
  }
19
19
  function _request(options = {}) {
20
20
  const { success, complete, fail } = options;
21
- let url = options.url || '';
22
21
  const params = {};
23
22
  const res = {};
24
- if (options.jsonp) {
25
- const { jsonp } = options, opts = __rest(options, ["jsonp"]);
26
- Object.assign(params, opts);
23
+ let { cache = 'default', credentials, data, dataType, header = {}, jsonp, method = 'GET', mode, responseType, signal, timeout = 2000, url = '' } = options, opts = __rest(options, ["cache", "credentials", "data", "dataType", "header", "jsonp", "method", "mode", "responseType", "signal", "timeout", "url"]);
24
+ Object.assign(params, opts);
25
+ if (jsonp) {
27
26
  // @ts-ignore
28
- params.params = opts.data;
27
+ params.params = data;
29
28
  params.cache = opts.jsonpCache;
29
+ // @ts-ignore
30
+ params.timeout = timeout;
30
31
  if (typeof jsonp === 'string') {
31
32
  // @ts-ignore
32
33
  params.name = jsonp;
33
34
  }
35
+ // Note: https://github.com/luckyadam/jsonp-retry
34
36
  return jsonpRetry(url, params)
35
37
  .then(data => {
36
38
  res.statusCode = 200;
@@ -45,50 +47,49 @@ function _request(options = {}) {
45
47
  return Promise.reject(err);
46
48
  });
47
49
  }
48
- params.method = options.method || 'GET';
50
+ params.method = method;
49
51
  const methodUpper = params.method.toUpperCase();
50
- params.cache = options.cache || 'default';
52
+ params.cache = cache;
51
53
  if (methodUpper === 'GET' || methodUpper === 'HEAD') {
52
- url = generateRequestUrlWithParams(url, options.data);
54
+ url = generateRequestUrlWithParams(url, data);
53
55
  }
54
- else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(options.data)) >= 0) {
55
- options.header = options.header || {};
56
- const keyOfContentType = Object.keys(options.header).find(item => item.toLowerCase() === 'content-type');
56
+ else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {
57
+ const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type');
57
58
  if (!keyOfContentType) {
58
- options.header['Content-Type'] = 'application/json';
59
+ header['Content-Type'] = 'application/json';
59
60
  }
60
- const contentType = options.header[keyOfContentType || 'Content-Type'];
61
+ const contentType = header[keyOfContentType || 'Content-Type'];
61
62
  if (contentType.indexOf('application/json') >= 0) {
62
- params.body = JSON.stringify(options.data);
63
+ params.body = JSON.stringify(data);
63
64
  }
64
65
  else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {
65
- params.body = serializeParams(options.data);
66
+ params.body = serializeParams(data);
66
67
  }
67
68
  else {
68
- params.body = options.data;
69
+ params.body = data;
69
70
  }
70
71
  }
71
72
  else {
72
- params.body = options.data;
73
+ params.body = data;
73
74
  }
74
- if (options.header) {
75
- params.headers = options.header;
75
+ if (header) {
76
+ params.headers = header;
76
77
  }
77
- if (options.mode) {
78
- params.mode = options.mode;
78
+ if (mode) {
79
+ params.mode = mode;
79
80
  }
80
81
  let timeoutTimer = null;
81
- if (options.signal) {
82
- params.signal = options.signal;
82
+ if (signal) {
83
+ params.signal = signal;
83
84
  }
84
- else if (typeof options.timeout === 'number') {
85
+ else if (typeof timeout === 'number') {
85
86
  const controller = new window.AbortController();
86
87
  params.signal = controller.signal;
87
88
  timeoutTimer = setTimeout(function () {
88
89
  controller.abort();
89
- }, options.timeout);
90
+ }, timeout);
90
91
  }
91
- params.credentials = options.credentials;
92
+ params.credentials = credentials;
92
93
  return fetch(url, params)
93
94
  .then(response => {
94
95
  if (timeoutTimer) {
@@ -104,17 +105,17 @@ function _request(options = {}) {
104
105
  for (const key of response.headers.keys()) {
105
106
  res.header[key] = response.headers.get(key);
106
107
  }
107
- if (options.responseType === 'arraybuffer') {
108
+ if (responseType === 'arraybuffer') {
108
109
  return response.arrayBuffer();
109
110
  }
110
111
  if (res.statusCode !== 204) {
111
- if (options.dataType === 'json' || typeof options.dataType === 'undefined') {
112
+ if (dataType === 'json' || typeof dataType === 'undefined') {
112
113
  return response.json().catch(() => {
113
114
  return null;
114
115
  });
115
116
  }
116
117
  }
117
- if (options.responseType === 'text' || options.dataType === 'text') {
118
+ if (responseType === 'text' || dataType === 'text') {
118
119
  return response.text();
119
120
  }
120
121
  return Promise.resolve(null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/api/network/request/index.ts"],"sourcesContent":["import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url = '', params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n let url = options.url || ''\n const params: RequestInit = {}\n const res: any = {}\n if (options.jsonp) {\n const { jsonp, ...opts } = options\n Object.assign(params, opts)\n // @ts-ignore\n params.params = opts.data\n params.cache = opts.jsonpCache\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = options.method || 'GET'\n const methodUpper = params.method.toUpperCase()\n params.cache = options.cache || 'default'\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, options.data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(options.data)) >= 0) {\n options.header = options.header || {}\n\n const keyOfContentType = Object.keys(options.header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n options.header['Content-Type'] = 'application/json'\n }\n const contentType = options.header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(options.data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(options.data)\n } else {\n params.body = options.data\n }\n } else {\n params.body = options.data\n }\n if (options.header) {\n params.headers = options.header\n }\n if (options.mode) {\n params.mode = options.mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n if (options.signal) {\n params.signal = options.signal\n } else if (typeof options.timeout === 'number') {\n const controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n controller.abort()\n }, options.timeout)\n }\n params.credentials = options.credentials\n return fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (options.responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (options.dataType === 'json' || typeof options.dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (options.responseType === 'text' || options.dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/api/network/request/index.ts"],"sourcesContent":["import 'whatwg-fetch'\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'\n\nimport Taro from '@tarojs/api'\nimport { isFunction } from '@tarojs/shared'\nimport jsonpRetry from 'jsonp-retry'\n\nimport { serializeParams } from '../../../utils'\n\n// @ts-ignore\nconst { Link } = Taro\n\nfunction generateRequestUrlWithParams (url = '', params?: unknown) {\n params = typeof params === 'string' ? params : serializeParams(params)\n if (params) {\n url += (~url.indexOf('?') ? '&' : '?') + params\n }\n url = url.replace('?&', '?')\n return url\n}\n\nfunction _request (options: Partial<Taro.request.Option> = {}) {\n const { success, complete, fail } = options\n const params: RequestInit = {}\n const res: any = {}\n let {\n cache = 'default',\n credentials,\n data, dataType,\n header = {},\n jsonp,\n method = 'GET',\n mode,\n responseType,\n signal,\n timeout = 2000,\n url = '',\n ...opts\n } = options\n Object.assign(params, opts)\n if (jsonp) {\n // @ts-ignore\n params.params = data\n params.cache = opts.jsonpCache\n // @ts-ignore\n params.timeout = timeout\n if (typeof jsonp === 'string') {\n // @ts-ignore\n params.name = jsonp\n }\n // Note: https://github.com/luckyadam/jsonp-retry\n return jsonpRetry(url, params)\n .then(data => {\n res.statusCode = 200\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n return Promise.reject(err)\n })\n }\n params.method = method\n const methodUpper = params.method.toUpperCase()\n params.cache = cache\n if (methodUpper === 'GET' || methodUpper === 'HEAD') {\n url = generateRequestUrlWithParams(url, data)\n } else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {\n const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type')\n if (!keyOfContentType) {\n header['Content-Type'] = 'application/json'\n }\n const contentType = header[keyOfContentType || 'Content-Type']\n\n if (contentType.indexOf('application/json') >= 0) {\n params.body = JSON.stringify(data)\n } else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {\n params.body = serializeParams(data)\n } else {\n params.body = data\n }\n } else {\n params.body = data\n }\n if (header) {\n params.headers = header\n }\n if (mode) {\n params.mode = mode\n }\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n if (signal) {\n params.signal = signal\n } else if (typeof timeout === 'number') {\n const controller = new window.AbortController()\n params.signal = controller.signal\n timeoutTimer = setTimeout(function () {\n controller.abort()\n }, timeout)\n }\n params.credentials = credentials\n return fetch(url, params)\n .then(response => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n if (!response) {\n const errorResponse = { ok: false }\n throw errorResponse\n }\n res.statusCode = response.status\n res.header = {}\n for (const key of response.headers.keys()) {\n res.header[key] = response.headers.get(key)\n }\n if (responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n if (res.statusCode !== 204) {\n if (dataType === 'json' || typeof dataType === 'undefined') {\n return response.json().catch(() => {\n return null\n })\n }\n }\n if (responseType === 'text' || dataType === 'text') {\n return response.text()\n }\n return Promise.resolve(null)\n })\n .then(data => {\n res.data = data\n isFunction(success) && success(res)\n isFunction(complete) && complete(res)\n return res\n })\n .catch(err => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n timeoutTimer = null\n }\n isFunction(fail) && fail(err)\n isFunction(complete) && complete(res)\n err.statusCode = res.statusCode\n err.errMsg = err.message\n return Promise.reject(err)\n })\n}\n\nfunction taroInterceptor (chain) {\n return _request(chain.requestParams)\n}\n\nconst link = new Link(taroInterceptor)\n\nexport const request = (<T extends Partial<Taro.request.Option> = TaroGeneral.IAnyObject>(...args: [string | T, T]) => {\n const [url = '', options = {} as T] = args\n if (typeof url === 'string') {\n options.url = url\n } else {\n Object.assign(options, url)\n }\n return link.request(options)\n}) as typeof Taro.request\nexport const addInterceptor = link.addInterceptor.bind(link)\nexport const cleanInterceptors = link.cleanInterceptors.bind(link)\n"],"names":[],"mappings":"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"}
@@ -50,9 +50,9 @@ function connectSocket(options) {
50
50
  // protocols must be array
51
51
  const _protocols = Array.isArray(protocols) ? protocols : null;
52
52
  // 2 connection at most
53
- if (socketTasks.length > 1) {
53
+ if (socketTasks.length >= 5) {
54
54
  return handle.fail({
55
- errMsg: '同时最多发起 2 个 socket 请求,更多请参考文档。'
55
+ errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'
56
56
  }, { resolve, reject });
57
57
  }
58
58
  const task = new SocketTask(url, _protocols);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/api/network/websocket/index.ts"],"sourcesContent":["import { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport { SocketTask } from './socketTask'\n\nlet socketTasks: SocketTask[] = []\nlet socketsCounter = 1\n\nexport function sendSocketMessage () {\n console.warn('Deprecated.Please use socketTask.send instead.')\n}\n\nexport function onSocketOpen () {\n console.warn('Deprecated.Please use socketTask.onOpen instead.')\n}\n\nexport function onSocketMessage () {\n console.warn('Deprecated.Please use socketTask.onMessage instead.')\n}\n\nexport function onSocketError () {\n console.warn('Deprecated.Please use socketTask.onError instead.')\n}\n\nexport function onSocketClose () {\n console.warn('Deprecated.Please use socketTask.onClose instead.')\n}\n\nexport function connectSocket (options?: Taro.connectSocket.Option) {\n const name = 'connectSocket'\n\n return new Promise((resolve, reject) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${name}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return reject(res)\n }\n const { url, protocols, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler<{\n socketTaskId?: number\n }>({ name, success, fail, complete })\n\n // options.url must be String\n if (typeof url !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'url',\n correct: 'String',\n wrong: url\n })\n }, { resolve, reject })\n }\n\n // options.url must be invalid\n if (!url.startsWith('ws://') && !url.startsWith('wss://')) {\n return handle.fail({\n errMsg: `request:fail invalid url \"${url}\"`\n }, { resolve, reject })\n }\n\n // protocols must be array\n const _protocols = Array.isArray(protocols) ? protocols : null\n\n // 2 connection at most\n if (socketTasks.length > 1) {\n return handle.fail({\n errMsg: '同时最多发起 2 个 socket 请求,更多请参考文档。'\n }, { resolve, reject })\n }\n\n const task = new SocketTask(url, _protocols)\n task._destroyWhenClose = function () {\n socketTasks = socketTasks.filter(socketTask => socketTask !== this)\n }\n socketTasks.push(task)\n\n handle.success({\n socketTaskId: socketsCounter++\n })\n\n return resolve(task)\n })\n}\n\nexport function closeSocket () {\n console.warn('Deprecated.Please use socketTask.close instead.')\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/api/network/websocket/index.ts"],"sourcesContent":["import { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\nimport { SocketTask } from './socketTask'\n\nlet socketTasks: SocketTask[] = []\nlet socketsCounter = 1\n\nexport function sendSocketMessage () {\n console.warn('Deprecated.Please use socketTask.send instead.')\n}\n\nexport function onSocketOpen () {\n console.warn('Deprecated.Please use socketTask.onOpen instead.')\n}\n\nexport function onSocketMessage () {\n console.warn('Deprecated.Please use socketTask.onMessage instead.')\n}\n\nexport function onSocketError () {\n console.warn('Deprecated.Please use socketTask.onError instead.')\n}\n\nexport function onSocketClose () {\n console.warn('Deprecated.Please use socketTask.onClose instead.')\n}\n\nexport function connectSocket (options?: Taro.connectSocket.Option) {\n const name = 'connectSocket'\n\n return new Promise((resolve, reject) => {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${name}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return reject(res)\n }\n const { url, protocols, success, fail, complete } = options as Exclude<typeof options, undefined>\n const handle = new MethodHandler<{\n socketTaskId?: number\n }>({ name, success, fail, complete })\n\n // options.url must be String\n if (typeof url !== 'string') {\n return handle.fail({\n errMsg: getParameterError({\n para: 'url',\n correct: 'String',\n wrong: url\n })\n }, { resolve, reject })\n }\n\n // options.url must be invalid\n if (!url.startsWith('ws://') && !url.startsWith('wss://')) {\n return handle.fail({\n errMsg: `request:fail invalid url \"${url}\"`\n }, { resolve, reject })\n }\n\n // protocols must be array\n const _protocols = Array.isArray(protocols) ? protocols : null\n\n // 2 connection at most\n if (socketTasks.length >= 5) {\n return handle.fail({\n errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'\n }, { resolve, reject })\n }\n\n const task = new SocketTask(url, _protocols)\n task._destroyWhenClose = function () {\n socketTasks = socketTasks.filter(socketTask => socketTask !== this)\n }\n socketTasks.push(task)\n\n handle.success({\n socketTaskId: socketsCounter++\n })\n\n return resolve(task)\n })\n}\n\nexport function closeSocket () {\n console.warn('Deprecated.Please use socketTask.close instead.')\n}\n"],"names":[],"mappings":";;;;AAIA,IAAI,WAAW,GAAiB,EAAE,CAAA;AAClC,IAAI,cAAc,GAAG,CAAC,CAAA;SAEN,iBAAiB,GAAA;AAC/B,IAAA,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;AAChE,CAAC;SAEe,YAAY,GAAA;AAC1B,IAAA,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;AAClE,CAAC;SAEe,eAAe,GAAA;AAC7B,IAAA,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;AACrE,CAAC;SAEe,aAAa,GAAA;AAC3B,IAAA,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;AACnE,CAAC;SAEe,aAAa,GAAA;AAC3B,IAAA,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;AACnE,CAAC;AAEK,SAAU,aAAa,CAAE,OAAmC,EAAA;IAChE,MAAM,IAAI,GAAG,eAAe,CAAA;IAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;AAErC,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,YAAA,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,CAAA,EAAG,IAAI,CAAA,MAAA,EAAS,QAAQ,CAAC,GAAG,CAAA,CAAE,EAAE,CAAA;AACtD,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACzB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACnB,SAAA;AACD,QAAA,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAA6C,CAAA;AACjG,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAE7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;;AAGrC,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,iBAAiB,CAAC;AACxB,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,KAAK,EAAE,GAAG;iBACX,CAAC;AACH,aAAA,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACxB,SAAA;;AAGD,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACzD,OAAO,MAAM,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,CAA6B,0BAAA,EAAA,GAAG,CAAG,CAAA,CAAA;AAC5C,aAAA,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACxB,SAAA;;AAGD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;;AAG9D,QAAA,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;AACjB,gBAAA,MAAM,EAAE,+BAA+B;AACxC,aAAA,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACxB,SAAA;QAED,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAC5C,IAAI,CAAC,iBAAiB,GAAG,YAAA;AACvB,YAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,KAAK,IAAI,CAAC,CAAA;AACrE,SAAC,CAAA;AACD,QAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEtB,MAAM,CAAC,OAAO,CAAC;YACb,YAAY,EAAE,cAAc,EAAE;AAC/B,SAAA,CAAC,CAAA;AAEF,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,KAAC,CAAC,CAAA;AACJ,CAAC;SAEe,WAAW,GAAA;AACzB,IAAA,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;AACjE;;;;"}
package/dist/index.cjs.js CHANGED
@@ -2418,7 +2418,6 @@ class InnerAudioContext {
2418
2418
  this.destroy = () => {
2419
2419
  this.stop();
2420
2420
  if (this.Instance) {
2421
- document.body.removeChild(this.Instance);
2422
2421
  this.Instance = undefined;
2423
2422
  }
2424
2423
  };
@@ -2445,6 +2444,7 @@ class InnerAudioContext {
2445
2444
  this.Instance = new Audio();
2446
2445
  this.errorStack = new CallbackManager();
2447
2446
  this.stopStack = new CallbackManager();
2447
+ this.Instance.onerror = this.errorStack.trigger;
2448
2448
  Taro.eventCenter.on('__taroRouterChange', () => { this.stop(); });
2449
2449
  this.onPlay(() => {
2450
2450
  if (this.__isFirstPlay) {
@@ -2537,6 +2537,7 @@ class BackgroundAudioManager {
2537
2537
  this.Instance = new Audio();
2538
2538
  this.errorStack = new CallbackManager();
2539
2539
  this.stopStack = new CallbackManager();
2540
+ this.Instance.onerror = this.errorStack.trigger;
2540
2541
  this.Instance.autoplay = true;
2541
2542
  this.onPlay(() => {
2542
2543
  if (this.currentTime !== this.startTime) {
@@ -2707,12 +2708,16 @@ const previewImage = (options) => __awaiter(void 0, void 0, void 0, function* ()
2707
2708
  const { urls = [], current = '', success, fail, complete } = options;
2708
2709
  const handle = new MethodHandler({ name: 'previewImage', success, fail, complete });
2709
2710
  const container = document.createElement('div');
2711
+ const removeHandler = () => {
2712
+ runtime.eventCenter.off('__taroRouterChange', removeHandler);
2713
+ container.remove();
2714
+ };
2715
+ // 路由改变后应该关闭预览框
2716
+ runtime.eventCenter.on('__taroRouterChange', removeHandler);
2710
2717
  container.classList.add('preview-image');
2711
2718
  container.style.cssText =
2712
2719
  'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;';
2713
- container.addEventListener('click', () => {
2714
- container.remove();
2715
- });
2720
+ container.addEventListener('click', removeHandler);
2716
2721
  const swiper = document.createElement('taro-swiper-core');
2717
2722
  // @ts-ignore
2718
2723
  swiper.full = true;
@@ -5024,19 +5029,21 @@ function generateRequestUrlWithParams(url = '', params) {
5024
5029
  }
5025
5030
  function _request(options = {}) {
5026
5031
  const { success, complete, fail } = options;
5027
- let url = options.url || '';
5028
5032
  const params = {};
5029
5033
  const res = {};
5030
- if (options.jsonp) {
5031
- const { jsonp } = options, opts = __rest(options, ["jsonp"]);
5032
- Object.assign(params, opts);
5034
+ let { cache = 'default', credentials, data, dataType, header = {}, jsonp, method = 'GET', mode, responseType, signal, timeout = 2000, url = '' } = options, opts = __rest(options, ["cache", "credentials", "data", "dataType", "header", "jsonp", "method", "mode", "responseType", "signal", "timeout", "url"]);
5035
+ Object.assign(params, opts);
5036
+ if (jsonp) {
5033
5037
  // @ts-ignore
5034
- params.params = opts.data;
5038
+ params.params = data;
5035
5039
  params.cache = opts.jsonpCache;
5040
+ // @ts-ignore
5041
+ params.timeout = timeout;
5036
5042
  if (typeof jsonp === 'string') {
5037
5043
  // @ts-ignore
5038
5044
  params.name = jsonp;
5039
5045
  }
5046
+ // Note: https://github.com/luckyadam/jsonp-retry
5040
5047
  return jsonpRetry(url, params)
5041
5048
  .then(data => {
5042
5049
  res.statusCode = 200;
@@ -5051,50 +5058,49 @@ function _request(options = {}) {
5051
5058
  return Promise.reject(err);
5052
5059
  });
5053
5060
  }
5054
- params.method = options.method || 'GET';
5061
+ params.method = method;
5055
5062
  const methodUpper = params.method.toUpperCase();
5056
- params.cache = options.cache || 'default';
5063
+ params.cache = cache;
5057
5064
  if (methodUpper === 'GET' || methodUpper === 'HEAD') {
5058
- url = generateRequestUrlWithParams(url, options.data);
5065
+ url = generateRequestUrlWithParams(url, data);
5059
5066
  }
5060
- else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(options.data)) >= 0) {
5061
- options.header = options.header || {};
5062
- const keyOfContentType = Object.keys(options.header).find(item => item.toLowerCase() === 'content-type');
5067
+ else if (['[object Array]', '[object Object]'].indexOf(Object.prototype.toString.call(data)) >= 0) {
5068
+ const keyOfContentType = Object.keys(header).find(item => item.toLowerCase() === 'content-type');
5063
5069
  if (!keyOfContentType) {
5064
- options.header['Content-Type'] = 'application/json';
5070
+ header['Content-Type'] = 'application/json';
5065
5071
  }
5066
- const contentType = options.header[keyOfContentType || 'Content-Type'];
5072
+ const contentType = header[keyOfContentType || 'Content-Type'];
5067
5073
  if (contentType.indexOf('application/json') >= 0) {
5068
- params.body = JSON.stringify(options.data);
5074
+ params.body = JSON.stringify(data);
5069
5075
  }
5070
5076
  else if (contentType.indexOf('application/x-www-form-urlencoded') >= 0) {
5071
- params.body = serializeParams(options.data);
5077
+ params.body = serializeParams(data);
5072
5078
  }
5073
5079
  else {
5074
- params.body = options.data;
5080
+ params.body = data;
5075
5081
  }
5076
5082
  }
5077
5083
  else {
5078
- params.body = options.data;
5084
+ params.body = data;
5079
5085
  }
5080
- if (options.header) {
5081
- params.headers = options.header;
5086
+ if (header) {
5087
+ params.headers = header;
5082
5088
  }
5083
- if (options.mode) {
5084
- params.mode = options.mode;
5089
+ if (mode) {
5090
+ params.mode = mode;
5085
5091
  }
5086
5092
  let timeoutTimer = null;
5087
- if (options.signal) {
5088
- params.signal = options.signal;
5093
+ if (signal) {
5094
+ params.signal = signal;
5089
5095
  }
5090
- else if (typeof options.timeout === 'number') {
5096
+ else if (typeof timeout === 'number') {
5091
5097
  const controller = new window.AbortController();
5092
5098
  params.signal = controller.signal;
5093
5099
  timeoutTimer = setTimeout(function () {
5094
5100
  controller.abort();
5095
- }, options.timeout);
5101
+ }, timeout);
5096
5102
  }
5097
- params.credentials = options.credentials;
5103
+ params.credentials = credentials;
5098
5104
  return fetch(url, params)
5099
5105
  .then(response => {
5100
5106
  if (timeoutTimer) {
@@ -5110,17 +5116,17 @@ function _request(options = {}) {
5110
5116
  for (const key of response.headers.keys()) {
5111
5117
  res.header[key] = response.headers.get(key);
5112
5118
  }
5113
- if (options.responseType === 'arraybuffer') {
5119
+ if (responseType === 'arraybuffer') {
5114
5120
  return response.arrayBuffer();
5115
5121
  }
5116
5122
  if (res.statusCode !== 204) {
5117
- if (options.dataType === 'json' || typeof options.dataType === 'undefined') {
5123
+ if (dataType === 'json' || typeof dataType === 'undefined') {
5118
5124
  return response.json().catch(() => {
5119
5125
  return null;
5120
5126
  });
5121
5127
  }
5122
5128
  }
5123
- if (options.responseType === 'text' || options.dataType === 'text') {
5129
+ if (responseType === 'text' || dataType === 'text') {
5124
5130
  return response.text();
5125
5131
  }
5126
5132
  return Promise.resolve(null);
@@ -5430,9 +5436,9 @@ function connectSocket(options) {
5430
5436
  // protocols must be array
5431
5437
  const _protocols = Array.isArray(protocols) ? protocols : null;
5432
5438
  // 2 connection at most
5433
- if (socketTasks.length > 1) {
5439
+ if (socketTasks.length >= 5) {
5434
5440
  return handle.fail({
5435
- errMsg: '同时最多发起 2 个 socket 请求,更多请参考文档。'
5441
+ errMsg: '同时最多发起 5 个 socket 请求,更多请参考文档。'
5436
5442
  }, { resolve, reject });
5437
5443
  }
5438
5444
  const task = new SocketTask(url, _protocols);