diff --git a/src/core/service/api/context/create-map-context.js b/src/core/service/api/context/create-map-context.js index 9c8b9e78af3d41293b0351539e0770f602dea44e..58c3ddd72bf9993ce1eb538fad87250068f221a3 100644 --- a/src/core/service/api/context/create-map-context.js +++ b/src/core/service/api/context/create-map-context.js @@ -1,7 +1,7 @@ import { invokeMethod, getCurrentPageVm -} from '../../platform' +} from '../../platform' import { callback @@ -16,8 +16,8 @@ UniServiceJSBridge.subscribe('onMapMethodCallback', ({ data }) => { callback.invoke(callbackId, data) -}) - +}) + const methods = ['getCenterLocation', 'moveToLocation', 'getScale', 'getRegion', 'includePoints', 'translateMarker'] export class MapContext { @@ -25,18 +25,20 @@ export class MapContext { this.id = id this.pageVm = pageVm } -} - -MapContext.prototype.$getAppMap = function () { - return plus.maps.getMapById(this.pageVm.$page.id + '-map-' + this.id) -} +} + +MapContext.prototype.$getAppMap = function () { + if (__PLATFORM__ === 'app-plus') { + return plus.maps.getMapById(this.pageVm.$page.id + '-map-' + this.id) + } +} methods.forEach(function (method) { - MapContext.prototype[method] = callback.warp(function (options, callbackId) { + MapContext.prototype[method] = callback.warp(function (options, callbackId) { options.callbackId = callbackId operateMapPlayer(this.id, this.pageVm, method, options) }) -}) +}) export function createMapContext (id, context) { if (context) { diff --git a/src/core/view/components/button/index.vue b/src/core/view/components/button/index.vue index bcb0959acf198ef0b9540ec0466c36873e60df75..cfea188fe71e9af433cca2970e86118d9068f996 100644 --- a/src/core/view/components/button/index.vue +++ b/src/core/view/components/button/index.vue @@ -65,7 +65,7 @@ export default { ) return } - if (this.openType === 'feedback') { + if (this.openType === 'feedback' && __PLATFORM__ === 'app-plus') { const feedback = plus.webview.create( 'https://service.dcloud.net.cn/uniapp/feedback.html', 'feedback', diff --git a/src/core/view/components/canvas/index.vue b/src/core/view/components/canvas/index.vue index 08a1e638c40f39f8015ce0757150b3c41a47a2bd..913a851364033f9d81d95fe3217788cb3a21ef16 100644 --- a/src/core/view/components/canvas/index.vue +++ b/src/core/view/components/canvas/index.vue @@ -351,17 +351,17 @@ export default { loadBlob(this.response) } } - xhr.onerror = window.plus ? plusDownload : function () { + xhr.onerror = __PLATFORM__ === 'app-plus' ? plusDownload : function () { self._images[src].src = src } xhr.send() } - if (window.plus && (!window.webkit || !window.webkit.messageHandlers)) { + if (__PLATFORM__ === 'app-plus' && (!window.webkit || !window.webkit.messageHandlers)) { self._images[src].src = src } else { // 解决 PLUS-APP(wkwebview)以及 H5 图像跨域问题(H5图像响应头需包含access-control-allow-origin) - if (window.plus && src.indexOf('http://') !== 0 && src.indexOf('https://') !== + if (__PLATFORM__ === 'app-plus' && src.indexOf('http://') !== 0 && src.indexOf('https://') !== 0 && !/^data:.*,.*/.test(src)) { loadFile(src) } else if (/^data:.*,.*/.test(src)) { diff --git a/src/core/view/components/editor/index.vue b/src/core/view/components/editor/index.vue index b7b4cf59ae71b28d8c984cb345e9fc9186610ea5..6ee1ef42de66eb7eaf31542330ed313b7e08862c 100644 --- a/src/core/view/components/editor/index.vue +++ b/src/core/view/components/editor/index.vue @@ -226,7 +226,7 @@ export default { return } const script = document.createElement('script') - script.src = window.plus ? './__uniappquill.js' : 'https://unpkg.com/quill@1.3.7/dist/quill.min.js' + script.src = __PLATFORM__ === 'app-plus' ? './__uniappquill.js' : 'https://unpkg.com/quill@1.3.7/dist/quill.min.js' document.body.appendChild(script) script.onload = callback }, @@ -238,7 +238,7 @@ export default { return } const script = document.createElement('script') - script.src = window.plus ? './__uniappquillimageresize.js' : 'https://unpkg.com/quill-image-resize-mp@3.0.1/image-resize.min.js' + script.src = __PLATFORM__ === 'app-plus' ? './__uniappquillimageresize.js' : 'https://unpkg.com/quill-image-resize-mp@3.0.1/image-resize.min.js' document.body.appendChild(script) script.onload = callback }, diff --git a/src/core/view/mixins/keyboard.js b/src/core/view/mixins/keyboard.js index da9405907bc714f45ea561363a36f4570204ef9e..1d9916bfcb776ec8df25a569943be2e9f2f3c437 100644 --- a/src/core/view/mixins/keyboard.js +++ b/src/core/view/mixins/keyboard.js @@ -28,7 +28,7 @@ export default { }, watch: { focus (val) { - if (val && __PLATFORM__ === 'app-plus') { + if (val) { this.showSoftKeybord() } } @@ -49,68 +49,72 @@ export default { } UniViewJSBridge.subscribe('hideKeyboard', this.hideKeyboardTemp) document.addEventListener('click', iosHideKeyboard, false) - if (__PLATFORM__ === 'app-plus') { - this.setSoftinputNavBar() - this.setSoftinputTemporary() - } + this.setSoftinputNavBar() + this.setSoftinputTemporary() }) el.addEventListener('blur', this.onKeyboardHide.bind(this)) }, showSoftKeybord () { - plusReady(() => { - plus.key.showSoftKeybord() - }) + if (__PLATFORM__ === 'app-plus') { + plusReady(() => { + plus.key.showSoftKeybord() + }) + } }, setSoftinputTemporary () { - plusReady(() => { - const currentWebview = plus.webview.currentWebview() - const style = currentWebview.getStyle() || {} - const rect = this.$el.getBoundingClientRect() - currentWebview.setSoftinputTemporary && currentWebview.setSoftinputTemporary({ - mode: style.softinputMode === 'adjustResize' ? 'adjustResize' : (this.adjustPosition ? 'adjustPan' : 'nothing'), - position: { - top: rect.top, - height: rect.height + (Number(this.cursorSpacing) || 0) - } + if (__PLATFORM__ === 'app-plus') { + plusReady(() => { + const currentWebview = plus.webview.currentWebview() + const style = currentWebview.getStyle() || {} + const rect = this.$el.getBoundingClientRect() + currentWebview.setSoftinputTemporary && currentWebview.setSoftinputTemporary({ + mode: style.softinputMode === 'adjustResize' ? 'adjustResize' : (this.adjustPosition ? 'adjustPan' : 'nothing'), + position: { + top: rect.top, + height: rect.height + (Number(this.cursorSpacing) || 0) + } + }) }) - }) + } }, setSoftinputNavBar () { - if (this.showConfirmBar === 'auto') { - delete this.__softinputNavBar - return - } - plusReady(() => { - const currentWebview = plus.webview.currentWebview() - const { softinputNavBar } = currentWebview.getStyle() || {} - const showConfirmBar = softinputNavBar !== 'none' - if (showConfirmBar !== this.showConfirmBar) { - this.__softinputNavBar = softinputNavBar || 'auto' - currentWebview.setStyle({ - softinputNavBar: this.showConfirmBar ? 'auto' : 'none' - }) - } else { + if (__PLATFORM__ === 'app-plus') { + if (this.showConfirmBar === 'auto') { delete this.__softinputNavBar + return } - }) - }, - resetSoftinputNavBar () { - const softinputNavBar = this.__softinputNavBar - if (softinputNavBar) { plusReady(() => { const currentWebview = plus.webview.currentWebview() - currentWebview.setStyle({ - softinputNavBar - }) + const { softinputNavBar } = currentWebview.getStyle() || {} + const showConfirmBar = softinputNavBar !== 'none' + if (showConfirmBar !== this.showConfirmBar) { + this.__softinputNavBar = softinputNavBar || 'auto' + currentWebview.setStyle({ + softinputNavBar: this.showConfirmBar ? 'auto' : 'none' + }) + } else { + delete this.__softinputNavBar + } }) } }, + resetSoftinputNavBar () { + if (__PLATFORM__ === 'app-plus') { + const softinputNavBar = this.__softinputNavBar + if (softinputNavBar) { + plusReady(() => { + const currentWebview = plus.webview.currentWebview() + currentWebview.setStyle({ + softinputNavBar + }) + }) + } + } + }, onKeyboardHide () { UniViewJSBridge.unsubscribe('hideKeyboard', this.hideKeyboardTemp) document.removeEventListener('click', iosHideKeyboard, false) - if (__PLATFORM__ === 'app-plus') { - this.resetSoftinputNavBar() - } + this.resetSoftinputNavBar() // 修复ios端显示与点击位置错位的Bug by:wyq if (String(navigator.vendor).indexOf('Apple') === 0) { document.documentElement.scrollTo(document.documentElement.scrollLeft, document.documentElement.scrollTop)