提交 e65a042d 编写于 作者: fxy060608's avatar fxy060608

refactor(v): createMapContext

上级 65f4918c
......@@ -7256,10 +7256,10 @@ var serviceContext = (function () {
});
}
function requestComponentInfo$2 (pageInstance, queue, callback) {
pageInstance.$page.meta.isNVue
? requestComponentInfo$1(pageInstance, queue, callback)
: requestComponentInfo(pageInstance, queue, callback);
function requestComponentInfo$2 (pageVm, queue, callback) {
pageVm.$page.meta.isNVue
? requestComponentInfo$1(pageVm, queue, callback)
: requestComponentInfo(pageVm, queue, callback);
}
......@@ -7427,6 +7427,16 @@ var serviceContext = (function () {
*/
function onMethod (name, callback) {
return UniServiceJSBridge.on('api.' + name, callback)
}
function getCurrentPageVm (method) {
const pages = getCurrentPages();
const len = pages.length;
if (!len) {
UniServiceJSBridge.emit('onError', `${method}:fail`);
}
const page = pages[len - 1];
return page.$vm
}
const eventNames = [
......@@ -7737,6 +7747,98 @@ var serviceContext = (function () {
getBackgroundAudioManager: getBackgroundAudioManager
});
function operateMapPlayer (mapId, pageVm, type, data) {
invokeMethod('operateMapPlayer', mapId, pageVm, type, data);
}
class MapContext {
constructor (id, pageVm) {
this.id = id;
this.pageVm = pageVm;
}
getCenterLocation ({
success,
fail,
complete
}) {
operateMapPlayer(this.id, this.pageVm, 'getCenterLocation', {
success,
fail,
complete
});
}
moveToLocation () {
operateMapPlayer(this.id, this.pageVm, 'moveToLocation');
}
translateMarker ({
markerId,
destination,
autoRotate,
rotate,
duration,
animationEnd,
fail
}) {
operateMapPlayer(this.id, this.pageVm, 'translateMarker', {
markerId,
destination,
autoRotate,
rotate,
duration,
animationEnd,
fail
});
}
includePoints ({
points,
padding
}) {
operateMapPlayer(this.id, this.pageVm, 'includePoints', {
points,
padding
});
}
getRegion ({
success,
fail,
complete
}) {
operateMapPlayer(this.id, this.pageVm, 'getRegion', {
success,
fail,
complete
});
}
getScale ({
success,
fail,
complete
}) {
operateMapPlayer(this.id, this.pageVm, 'getScale', {
success,
fail,
complete
});
}
}
function createMapContext$1 (id, context) {
if (context) {
return new MapContext(id, context)
}
return new MapContext(id, getCurrentPageVm('createMapContext'))
}
var require_context_module_1_6 = /*#__PURE__*/Object.freeze({
createMapContext: createMapContext$1
});
const callbacks$3 = [];
onMethod('onAccelerometerChange', function (res) {
......@@ -7777,7 +7879,7 @@ var serviceContext = (function () {
})
}
var require_context_module_1_6 = /*#__PURE__*/Object.freeze({
var require_context_module_1_7 = /*#__PURE__*/Object.freeze({
onAccelerometerChange: onAccelerometerChange,
startAccelerometer: startAccelerometer,
stopAccelerometer: stopAccelerometer
......@@ -7800,7 +7902,7 @@ var serviceContext = (function () {
const onBLEConnectionStateChange$1 = on('onBLEConnectionStateChange');
const onBLECharacteristicValueChange$1 = on('onBLECharacteristicValueChange');
var require_context_module_1_7 = /*#__PURE__*/Object.freeze({
var require_context_module_1_8 = /*#__PURE__*/Object.freeze({
onBluetoothDeviceFound: onBluetoothDeviceFound$1,
onBluetoothAdapterStateChange: onBluetoothAdapterStateChange$1,
onBLEConnectionStateChange: onBLEConnectionStateChange$1,
......@@ -7847,7 +7949,7 @@ var serviceContext = (function () {
})
}
var require_context_module_1_8 = /*#__PURE__*/Object.freeze({
var require_context_module_1_9 = /*#__PURE__*/Object.freeze({
onCompassChange: onCompassChange,
startCompass: startCompass,
stopCompass: stopCompass
......@@ -7865,7 +7967,7 @@ var serviceContext = (function () {
callbacks$5.push(callbackId);
}
var require_context_module_1_9 = /*#__PURE__*/Object.freeze({
var require_context_module_1_10 = /*#__PURE__*/Object.freeze({
onNetworkStatusChange: onNetworkStatusChange
});
......@@ -7942,7 +8044,7 @@ var serviceContext = (function () {
return recorderManager || (recorderManager = new RecorderManager())
}
var require_context_module_1_10 = /*#__PURE__*/Object.freeze({
var require_context_module_1_11 = /*#__PURE__*/Object.freeze({
getRecorderManager: getRecorderManager
});
......@@ -8030,7 +8132,7 @@ var serviceContext = (function () {
return task
}
var require_context_module_1_11 = /*#__PURE__*/Object.freeze({
var require_context_module_1_12 = /*#__PURE__*/Object.freeze({
downloadFile: downloadFile$1
});
......@@ -8135,7 +8237,7 @@ var serviceContext = (function () {
return new RequestTask(requestTaskId)
}
var require_context_module_1_12 = /*#__PURE__*/Object.freeze({
var require_context_module_1_13 = /*#__PURE__*/Object.freeze({
request: request$1
});
......@@ -8309,7 +8411,7 @@ var serviceContext = (function () {
callbacks$7.close = callbackId;
}
var require_context_module_1_13 = /*#__PURE__*/Object.freeze({
var require_context_module_1_14 = /*#__PURE__*/Object.freeze({
connectSocket: connectSocket$1,
sendSocketMessage: sendSocketMessage$1,
closeSocket: closeSocket$1,
......@@ -8403,7 +8505,7 @@ var serviceContext = (function () {
return task
}
var require_context_module_1_14 = /*#__PURE__*/Object.freeze({
var require_context_module_1_15 = /*#__PURE__*/Object.freeze({
uploadFile: uploadFile$1
});
......@@ -8512,7 +8614,7 @@ var serviceContext = (function () {
return res
}
var require_context_module_1_15 = /*#__PURE__*/Object.freeze({
var require_context_module_1_16 = /*#__PURE__*/Object.freeze({
setStorage: setStorage$1,
setStorageSync: setStorageSync$1,
getStorage: getStorage$1,
......@@ -8603,7 +8705,7 @@ var serviceContext = (function () {
return new MPAnimation(option)
}
var require_context_module_1_16 = /*#__PURE__*/Object.freeze({
var require_context_module_1_17 = /*#__PURE__*/Object.freeze({
createAnimation: createAnimation
});
......@@ -8616,8 +8718,8 @@ var serviceContext = (function () {
};
class ServiceIntersectionObserver {
constructor (pageId, component, options) {
this.pageId = pageId;
constructor (component, options) {
this.pageId = component.$page.id;
this.component = component._$id || component; // app-plus 平台传输_$id
this.options = Object.assign({}, defaultOptions, options);
}
......@@ -8662,18 +8764,12 @@ var serviceContext = (function () {
context = null;
}
if (context) {
return new ServiceIntersectionObserver(context.$page.id, context, options)
}
const pages = getCurrentPages();
const len = pages.length;
if (!len) {
UniServiceJSBridge.emit('onError', 'createIntersectionObserver:fail');
return new ServiceIntersectionObserver(context, options)
}
const page = pages[len - 1];
return new ServiceIntersectionObserver(page.$page.id, page.$vm, options)
return new ServiceIntersectionObserver(getCurrentPageVm('createIntersectionObserver'), options)
}
var require_context_module_1_17 = /*#__PURE__*/Object.freeze({
var require_context_module_1_18 = /*#__PURE__*/Object.freeze({
createIntersectionObserver: createIntersectionObserver
});
......@@ -8778,15 +8874,10 @@ var serviceContext = (function () {
if (context) {
return new SelectorQuery(context)
}
const pages = getCurrentPages();
const len = pages.length;
if (!len) {
UniServiceJSBridge.emit('onError', 'createSelectorQuery:fail');
}
return new SelectorQuery(pages[len - 1].$vm)
return new SelectorQuery(getCurrentPageVm('createSelectorQuery'))
}
var require_context_module_1_18 = /*#__PURE__*/Object.freeze({
var require_context_module_1_19 = /*#__PURE__*/Object.freeze({
createSelectorQuery: createSelectorQuery
});
......@@ -8802,7 +8893,7 @@ var serviceContext = (function () {
callbacks$8.push(callbackId);
}
var require_context_module_1_19 = /*#__PURE__*/Object.freeze({
var require_context_module_1_20 = /*#__PURE__*/Object.freeze({
onKeyboardHeightChange: onKeyboardHeightChange
});
......@@ -8814,7 +8905,7 @@ var serviceContext = (function () {
return {}
}
var require_context_module_1_20 = /*#__PURE__*/Object.freeze({
var require_context_module_1_21 = /*#__PURE__*/Object.freeze({
pageScrollTo: pageScrollTo$1
});
......@@ -8850,7 +8941,7 @@ var serviceContext = (function () {
callbacks$9.push(callbackId);
}
var require_context_module_1_21 = /*#__PURE__*/Object.freeze({
var require_context_module_1_22 = /*#__PURE__*/Object.freeze({
removeTabBarBadge: removeTabBarBadge$1,
showTabBarRedDot: showTabBarRedDot$1,
hideTabBarRedDot: hideTabBarRedDot$1,
......@@ -8873,7 +8964,7 @@ var serviceContext = (function () {
callbacks$a.splice(callbacks$a.indexOf(callbackId), 1);
}
var require_context_module_1_22 = /*#__PURE__*/Object.freeze({
var require_context_module_1_23 = /*#__PURE__*/Object.freeze({
onWindowResize: onWindowResize,
offWindowResize: offWindowResize
});
......@@ -8889,23 +8980,24 @@ var serviceContext = (function () {
'./base/upx2px.js': require_context_module_1_3,
'./context/audio.js': require_context_module_1_4,
'./context/background-audio.js': require_context_module_1_5,
'./device/accelerometer.js': require_context_module_1_6,
'./device/bluetooth.js': require_context_module_1_7,
'./device/compass.js': require_context_module_1_8,
'./device/network.js': require_context_module_1_9,
'./media/recorder.js': require_context_module_1_10,
'./network/download-file.js': require_context_module_1_11,
'./network/request.js': require_context_module_1_12,
'./network/socket.js': require_context_module_1_13,
'./network/upload-file.js': require_context_module_1_14,
'./storage/storage.js': require_context_module_1_15,
'./ui/create-animation.js': require_context_module_1_16,
'./ui/create-intersection-observer.js': require_context_module_1_17,
'./ui/create-selector-query.js': require_context_module_1_18,
'./ui/keyboard.js': require_context_module_1_19,
'./ui/page-scroll-to.js': require_context_module_1_20,
'./ui/tab-bar.js': require_context_module_1_21,
'./ui/window.js': require_context_module_1_22,
'./context/create-map-context.js': require_context_module_1_6,
'./device/accelerometer.js': require_context_module_1_7,
'./device/bluetooth.js': require_context_module_1_8,
'./device/compass.js': require_context_module_1_9,
'./device/network.js': require_context_module_1_10,
'./media/recorder.js': require_context_module_1_11,
'./network/download-file.js': require_context_module_1_12,
'./network/request.js': require_context_module_1_13,
'./network/socket.js': require_context_module_1_14,
'./network/upload-file.js': require_context_module_1_15,
'./storage/storage.js': require_context_module_1_16,
'./ui/create-animation.js': require_context_module_1_17,
'./ui/create-intersection-observer.js': require_context_module_1_18,
'./ui/create-selector-query.js': require_context_module_1_19,
'./ui/keyboard.js': require_context_module_1_20,
'./ui/page-scroll-to.js': require_context_module_1_21,
'./ui/tab-bar.js': require_context_module_1_22,
'./ui/window.js': require_context_module_1_23,
};
var req = function req(key) {
......
function operateMapPlayer (mapId, pageId, type, data) {
UniServiceJSBridge.publishHandler(pageId + '-map-' + mapId, {
mapId,
type,
data
}, pageId)
import {
invokeMethod,
getCurrentPageVm
} from '../../platform'
function operateMapPlayer (mapId, pageVm, type, data) {
invokeMethod('operateMapPlayer', mapId, pageVm, type, data)
}
class MapContext {
constructor (id, pageId) {
constructor (id, pageVm) {
this.id = id
this.pageId = pageId
this.pageVm = pageVm
}
getCenterLocation ({
......@@ -17,15 +18,17 @@ class MapContext {
fail,
complete
}) {
operateMapPlayer(this.id, this.pageId, 'getCenterLocation', {
operateMapPlayer(this.id, this.pageVm, 'getCenterLocation', {
success,
fail,
complete
})
}
moveToLocation () {
operateMapPlayer(this.id, this.pageId, 'moveToLocation')
operateMapPlayer(this.id, this.pageVm, 'moveToLocation')
}
translateMarker ({
markerId,
destination,
......@@ -35,7 +38,7 @@ class MapContext {
animationEnd,
fail
}) {
operateMapPlayer(this.id, this.pageId, 'translateMarker', {
operateMapPlayer(this.id, this.pageVm, 'translateMarker', {
markerId,
destination,
autoRotate,
......@@ -45,32 +48,35 @@ class MapContext {
fail
})
}
includePoints ({
points,
padding
}) {
operateMapPlayer(this.id, this.pageId, 'includePoints', {
operateMapPlayer(this.id, this.pageVm, 'includePoints', {
points,
padding
})
}
getRegion ({
success,
fail,
complete
}) {
operateMapPlayer(this.id, this.pageId, 'getRegion', {
operateMapPlayer(this.id, this.pageVm, 'getRegion', {
success,
fail,
complete
})
}
getScale ({
success,
fail,
complete
}) {
operateMapPlayer(this.id, this.pageId, 'getScale', {
operateMapPlayer(this.id, this.pageVm, 'getScale', {
success,
fail,
complete
......@@ -80,12 +86,7 @@ class MapContext {
export function createMapContext (id, context) {
if (context) {
return new MapContext(id, context.$page.id)
return new MapContext(id, context)
}
const app = getApp()
if (app.$route && app.$route.params.__id__) {
return new MapContext(id, app.$route.params.__id__)
} else {
UniServiceJSBridge.emit('onError', 'createMapContext:fail')
}
}
return new MapContext(id, getCurrentPageVm('createMapContext'))
}
import createCallbacks from 'uni-helpers/callbacks'
import {
getCurrentPageVm
} from '../../platform'
const createIntersectionObserverCallbacks = createCallbacks('requestComponentObserver')
const defaultOptions = {
......@@ -9,8 +13,8 @@ const defaultOptions = {
}
class ServiceIntersectionObserver {
constructor (pageId, component, options) {
this.pageId = pageId
constructor (component, options) {
this.pageId = component.$page.id
this.component = component._$id || component // app-plus 平台传输_$id
this.options = Object.assign({}, defaultOptions, options)
}
......@@ -55,13 +59,7 @@ export function createIntersectionObserver (context, options) {
context = null
}
if (context) {
return new ServiceIntersectionObserver(context.$page.id, context, options)
}
const pages = getCurrentPages()
const len = pages.length
if (!len) {
UniServiceJSBridge.emit('onError', 'createIntersectionObserver:fail')
return new ServiceIntersectionObserver(context, options)
}
const page = pages[len - 1]
return new ServiceIntersectionObserver(page.$page.id, page.$vm, options)
return new ServiceIntersectionObserver(getCurrentPageVm('createIntersectionObserver'), options)
}
import {
isFn
} from 'uni-shared'
import {
invokeMethod
invokeMethod,
getCurrentPageVm
} from '../../platform'
class NodesRef {
......@@ -106,10 +108,5 @@ export function createSelectorQuery (context) {
if (context) {
return new SelectorQuery(context)
}
const pages = getCurrentPages()
const len = pages.length
if (!len) {
UniServiceJSBridge.emit('onError', 'createSelectorQuery:fail')
}
return new SelectorQuery(pages[len - 1].$vm)
return new SelectorQuery(getCurrentPageVm('createSelectorQuery'))
}
......@@ -13,4 +13,14 @@ export function invokeMethod (name, ...args) {
*/
export function onMethod (name, callback) {
return UniServiceJSBridge.on('api.' + name, callback)
}
export function getCurrentPageVm (method) {
const pages = getCurrentPages()
const len = pages.length
if (!len) {
UniServiceJSBridge.emit('onError', `${method}:fail`)
}
const page = pages[len - 1]
return page.$vm
}
import {
findElmById,
invokeVmMethod,
invokeVmMethodWithoutArgs
} from '../util'
class MapContext {
constructor (id, ctx) {
this.id = id
this.ctx = ctx
}
getCenterLocation (cbs) {
return invokeVmMethodWithoutArgs(this.ctx, 'getCenterLocation', cbs)
}
moveToLocation () {
return invokeVmMethodWithoutArgs(this.ctx, 'moveToLocation')
}
translateMarker (args) {
return invokeVmMethod(this.ctx, 'translateMarker', args, ['animationEnd'])
}
includePoints (args) {
return invokeVmMethod(this.ctx, 'includePoints', args)
}
getRegion (cbs) {
return invokeVmMethodWithoutArgs(this.ctx, 'getRegion', cbs)
}
getScale (cbs) {
return invokeVmMethodWithoutArgs(this.ctx, 'getScale', cbs)
}
}
export function createMapContext (id, vm) {
if (!vm) {
return console.warn('uni.createMapContext 必须传入第二个参数,即当前 vm 对象(this)')
}
const elm = findElmById(id, vm)
if (!elm) {
return console.warn('Can not find `' + id + '`')
}
return new MapContext(id, elm)
}
import {
findElmById,
invokeVmMethod,
invokeVmMethodWithoutArgs
} from '../util'
const METHODS = {
getCenterLocation (ctx, cbs) {
return invokeVmMethodWithoutArgs(ctx, 'getCenterLocation', cbs)
},
moveToLocation (ctx) {
return invokeVmMethodWithoutArgs(ctx, 'moveToLocation')
},
translateMarker (ctx, args) {
return invokeVmMethod(ctx, 'translateMarker', args, ['animationEnd'])
},
includePoints (ctx, args) {
return invokeVmMethod(ctx, 'includePoints', args)
},
getRegion (ctx, cbs) {
return invokeVmMethodWithoutArgs(ctx, 'getRegion', cbs)
},
getScale (ctx, cbs) {
return invokeVmMethodWithoutArgs(ctx, 'getScale', cbs)
}
}
export function operateMapPlayer (mapId, pageVm, type, data) {
return METHODS[type](findElmById(mapId, pageVm), data)
}
......@@ -46,7 +46,11 @@ export function invokeVmMethod (vm, method, args, extras) {
}
export function findElmById (id, vm) {
return findRefByElm(id, vm.$el)
const elm = findRefByElm(id, vm.$el)
if (!elm) {
return console.error('Can not find `' + id + '`')
}
return elm
}
function findRefByElm (id, elm) {
......@@ -108,4 +112,4 @@ function normalizeCallback (method, callbacks) {
isFn(complete) && complete(ret)
}
}
}
}
import {
operateMapPlayer as operateVueMapPlayer
} from 'uni-platforms/h5/service/api/context/operate-map-player'
import {
operateMapPlayer as operateNVueMapPlayer
} from 'uni-platforms/app-plus-nvue/service/api/context/operate-map-player'
export function operateMapPlayer(mapId, pageVm, type, data) {
pageVm.$page.meta.isNVue ?
operateNVueMapPlayer(mapId, pageVm, type, data) :
operateVueMapPlayer(mapId, pageVm, type, data)
}
......@@ -6,8 +6,8 @@ import {
requestComponentInfo as requestNVueComponentInfo
} from 'uni-platforms/app-plus-nvue/service/api/ui/request-component-info'
export function requestComponentInfo (pageInstance, queue, callback) {
pageInstance.$page.meta.isNVue
? requestNVueComponentInfo(pageInstance, queue, callback)
: requestVueComponentInfo(pageInstance, queue, callback)
export function requestComponentInfo (pageVm, queue, callback) {
pageVm.$page.meta.isNVue
? requestNVueComponentInfo(pageVm, queue, callback)
: requestVueComponentInfo(pageVm, queue, callback)
}
export function operateMapPlayer (mapId, pageVm, type, data) {
const pageId = pageVm.$page.id
UniServiceJSBridge.publishHandler(pageId + '-map-' + mapId, {
mapId,
type,
data
}, pageId)
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册