恢复小程序内第三方地图选择流程
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-11 20:22:00 +08:00
parent ee0691174e
commit e99d713dd0
3 changed files with 51 additions and 5 deletions

View File

@@ -124,6 +124,11 @@ import {
THIRD_PARTY_MAP_PROVIDERS,
type ThirdPartyMapProviderOption
} from '@/services/ThirdPartyMapSearchService'
import { isNativeWechatMiniProgram } from '@/utils/hostEnvironment'
import {
getArrivalNavigationActionText,
resolveArrivalNavigationMode
} from '@/components/navigation/arrivalNavigationPolicy'
const props = withDefaults(defineProps<{
visible?: boolean
@@ -147,8 +152,9 @@ const emit = defineEmits<{
const typeOptions = computed(() => ARRIVAL_TARGET_TYPES)
const mapProviders = computed(() => THIRD_PARTY_MAP_PROVIDERS)
const navigationMode = resolveArrivalNavigationMode(isNativeWechatMiniProgram())
const primaryActionText = computed(() => (
isOpeningNavigation.value ? '正在打开...' : '打开地图导航'
getArrivalNavigationActionText(navigationMode, isOpeningNavigation.value)
))
const arrivalPanelRef = ref<unknown>(null)
const isCollapsed = ref(false)
@@ -248,6 +254,12 @@ const handleNavigateTap = async () => {
return
}
// H5含小程序 web-view统一由用户选择第三方地图。
if (navigationMode === 'third-party-providers') {
providerSheetVisible.value = true
return
}
const target = {
latitude: props.selectedTarget.latitude,
longitude: props.selectedTarget.longitude,
@@ -256,10 +268,7 @@ const handleNavigateTap = async () => {
}
isOpeningNavigation.value = true
try {
const result = await openWechatMiniProgramLocation(target)
if (result.status === 'not-embedded') {
providerSheetVisible.value = true
}
await openWechatMiniProgramLocation(target)
} finally {
isOpeningNavigation.value = false
}