vending-machine/mobile/utils/navigation.js
2026-04-08 20:45:41 +08:00

38 lines
1.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Banner导航工具函数
* 根据Banner的linkType决定导航方式
* @param {object} banner - Banner对象 { linkType: 'internal'|'external', linkUrl: string }
* @returns {{ type: string, url: string } | null} 导航结果描述null表示无效Banner
*/
export function resolveBannerNavigation(banner) {
if (!banner || !banner.linkUrl) return null
if (banner.linkType === 'internal') {
return { type: 'internal', url: banner.linkUrl }
} else if (banner.linkType === 'external') {
return { type: 'external', url: banner.linkUrl }
}
return null
}
/**
* 执行Banner导航依赖uni API
* @param {object} banner - Banner对象
*/
export function navigateBanner(banner) {
const result = resolveBannerNavigation(banner)
if (!result) return
if (result.type === 'internal') {
uni.navigateTo({ url: result.url })
} else if (result.type === 'external') {
// #ifdef APP-PLUS
plus.runtime.openURL(result.url)
// #endif
// #ifdef H5
window.open(result.url)
// #endif
}
}