提交 fba61e7e 编写于 作者: Q qiang

fix: 优化 core components 中的平台判断

上级 c6964211
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) {
......
......@@ -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',
......
......@@ -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)) {
......
......@@ -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
},
......
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册