智能照明系统APP-本地串口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
LightingSystemApp-serial/.svn/pristine/95/95688b6b2e5bfd71775aed09689...

70 lines
1.5 KiB

import {
requireNativePlugin
} from './require-native-plugin'
function wrapper (webview) {
webview.$processed = true
webview.postMessage = function (data) {
plus.webview.postMessageToUniNView({
type: 'UniAppSubNVue',
data
}, webview.id)
}
let callbacks = []
webview.onMessage = function (callback) {
callbacks.push(callback)
}
webview.$consumeMessage = function (e) {
callbacks.forEach(callback => callback(e))
}
if (!webview.__uniapp_mask_id) {
return
}
const maskColor = webview.__uniapp_mask
const maskWebview = webview.__uniapp_mask_id === '0' ? {
setStyle ({
mask
}) {
requireNativePlugin('uni-tabview').setMask({
color: mask
})
}
} : plus.webview.getWebviewById(webview.__uniapp_mask_id)
const oldShow = webview.show
const oldHide = webview.hide
const oldClose = webview.close
const showMask = function () {
maskWebview.setStyle({
mask: maskColor
})
}
const closeMask = function () {
maskWebview.setStyle({
mask: 'none'
})
}
webview.show = function (...args) {
showMask()
return oldShow.apply(webview, args)
}
webview.hide = function (...args) {
closeMask()
return oldHide.apply(webview, args)
}
webview.close = function (...args) {
closeMask()
callbacks = []
return oldClose.apply(webview, args)
}
}
export function getSubNVueById (id) {
const webview = plus.webview.getWebviewById(id)
if (webview && !webview.$processed) {
wrapper(webview)
}
return webview
}