提交 e999a4ed 编写于 作者: Q qiang

Merge branch 'fix-callback' into dev

...@@ -12,7 +12,8 @@ import { ...@@ -12,7 +12,8 @@ import {
} from '../../constants' } from '../../constants'
import { import {
registerPlusMessage registerPlusMessage,
consumePlusMessage
} from '../../framework/plus-message' } from '../../framework/plus-message'
export const SCAN_ID = '__UNIAPP_SCAN' export const SCAN_ID = '__UNIAPP_SCAN'
...@@ -97,12 +98,12 @@ export function scanCode ({ ...@@ -97,12 +98,12 @@ export function scanCode ({
barcode.scan(file, (type, code) => { barcode.scan(file, (type, code) => {
if (isDark) { if (isDark) {
plus.navigator.setStatusBarStyle('isDark') plus.navigator.setStatusBarStyle('isDark')
}
result = {
type,
code
} }
webview.close('auto') webview.close('auto')
result = {
type,
code
}
}, () => { }, () => {
plus.nativeUI.toast('识别失败') plus.nativeUI.toast('识别失败')
}, filters) }, filters)
...@@ -143,7 +144,7 @@ export function scanCode ({ ...@@ -143,7 +144,7 @@ export function scanCode ({
}) })
}) })
webview.addEventListener('close', () => { webview.addEventListener('close', () => {
if (result && 'code' in result) { if (result) {
invoke(callbackId, { invoke(callbackId, {
result: result.code, result: result.code,
scanType: SCAN_MAPS[result.type] || '', scanType: SCAN_MAPS[result.type] || '',
...@@ -151,11 +152,12 @@ export function scanCode ({ ...@@ -151,11 +152,12 @@ export function scanCode ({
path: '', path: '',
errMsg: 'scanCode:ok' errMsg: 'scanCode:ok'
}) })
} else { } else {
invoke(callbackId, { invoke(callbackId, {
errMsg: 'scanCode:fail cancel' errMsg: 'scanCode:fail cancel'
}) })
} }
consumePlusMessage(MESSAGE_TYPE)
}) })
if (isDark) { // 状态栏前景色 if (isDark) { // 状态栏前景色
plus.navigator.setStatusBarStyle('light') plus.navigator.setStatusBarStyle('light')
...@@ -170,15 +172,10 @@ export function scanCode ({ ...@@ -170,15 +172,10 @@ export function scanCode ({
} }
}) })
} }
// fixed by hxy 注册扫码事件
registerPlusMessage(MESSAGE_TYPE, function (res) { registerPlusMessage(MESSAGE_TYPE, function (res) {
if (res && !res.errMsg) { if (res && 'code' in res) {
result = res result = res
} else {
const errMsg = res && res.errMsg ? ' ' + res.errMsg : ''
result = {
errMsg: 'scanCode:fail' + errMsg
}
} }
}, false) }, false)
} }
...@@ -11,10 +11,13 @@ import { ...@@ -11,10 +11,13 @@ import {
} from '../../constants' } from '../../constants'
import { import {
registerPlusMessage registerPlusMessage,
consumePlusMessage
} from '../../framework/plus-message' } from '../../framework/plus-message'
const CHOOSE_LOCATION_PATH = '_www/__uniappchooselocation.html' const CHOOSE_LOCATION_PATH = '_www/__uniappchooselocation.html'
const MESSAGE_TYPE = 'chooseLocation'
export function chooseLocation (params, callbackId) { export function chooseLocation (params, callbackId) {
const statusBarStyle = plus.navigator.getStatusBarStyle() const statusBarStyle = plus.navigator.getStatusBarStyle()
...@@ -56,27 +59,39 @@ export function chooseLocation (params, callbackId) { ...@@ -56,27 +59,39 @@ export function chooseLocation (params, callbackId) {
plus.navigator.setStatusBarStyle('light') plus.navigator.setStatusBarStyle('light')
} }
}) })
}
let index = 0
let onShow = function () {
index++
if (index === 2) {
webview.evalJS(`__chooseLocation__(${JSON.stringify(params)})`)
}
} }
webview.addEventListener('loaded', onShow)
webview.show('slide-in-bottom', ANI_DURATION, onShow)
let result
webview.addEventListener('close', () => {
if (result) {
invoke(callbackId, {
name: result.poiname,
address: result.poiaddress,
latitude: result.latlng.lat,
longitude: result.latlng.lng,
errMsg: 'chooseLocation:ok'
})
} else {
consumePlusMessage(MESSAGE_TYPE)
invoke(callbackId, {
errMsg: 'chooseLocation:fail cancel'
})
}
})
webview.show('slide-in-bottom', ANI_DURATION, () => { registerPlusMessage(MESSAGE_TYPE, function (res) {
webview.evalJS(`__chooseLocation__(${JSON.stringify(params)})`) if (res && 'latlng' in res) {
}) result = res
// fixed by hxy
registerPlusMessage('chooseLocation', function (res) {
if (res && !res.errMsg) {
invoke(callbackId, {
name: res.poiname,
address: res.poiaddress,
latitude: res.latlng.lat,
longitude: res.latlng.lng,
errMsg: 'chooseLocation:ok'
})
} else {
const errMsg = res && res.errMsg ? ' ' + res.errMsg : ''
invoke(callbackId, {
errMsg: 'chooseLocation:fail' + errMsg
})
} }
}, false) }, false)
} }
...@@ -9,7 +9,8 @@ import { ...@@ -9,7 +9,8 @@ import {
} from './page' } from './page'
import { import {
registerPlusMessage registerPlusMessage,
consumePlusMessage
} from './plus-message' } from './plus-message'
import { import {
...@@ -68,6 +69,16 @@ function initGlobalListeners () { ...@@ -68,6 +69,16 @@ function initGlobalListeners () {
publish('onKeyboardHeightChange', { publish('onKeyboardHeightChange', {
height: event.height height: event.height
}) })
})
plus.globalEvent.addEventListener('plusMessage', function (e) {
if (process.env.NODE_ENV !== 'production') {
console.log('UNIAPP[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data))
}
if (e.data && e.data.type) {
const type = e.data.type
consumePlusMessage(type, e.data.args || {})
}
}) })
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册