wangfukang 1 month ago
parent
commit
e63986ac4e
  1. 24
      pages/index/index.vue

24
pages/index/index.vue

@ -572,7 +572,7 @@
import myCenter from "@/components/tab-bar/myCenter.vue"; import myCenter from "@/components/tab-bar/myCenter.vue";
import homeGroupPending from "@/components/tab-bar/homeGroupPending.vue"; import homeGroupPending from "@/components/tab-bar/homeGroupPending.vue";
import { getIeRealNameAuditSetting } from '@/common/ieApi.js' import { getIeRealNameAuditSetting } from '@/common/ieApi.js'
import { resolveHomeShareTarget, normalizeShareTargetPath, resolveMiniCodeSceneTarget } from '@/utils/sharePath.js' import { resolveHomeShareTarget, normalizeShareTargetPath, resolveMiniCodeSceneTarget, isShareTargetHandled, completeShareEnter, reopenShareEnter, consumeShareRedirectSuppression } from '@/utils/sharePath.js'
const HOME_AD_IMAGE_CACHE_KEY = 'home_ad_image_cache_v1' const HOME_AD_IMAGE_CACHE_KEY = 'home_ad_image_cache_v1'
const HOME_POPUP_AD_SHOWN_KEY_PREFIX = 'home_popup_ad_shown_v1' const HOME_POPUP_AD_SHOWN_KEY_PREFIX = 'home_popup_ad_shown_v1'
@ -977,6 +977,7 @@
} }
const shareTargetPath = resolveMiniCodeSceneTarget(option && option.scene) || resolveHomeShareTarget(option) const shareTargetPath = resolveMiniCodeSceneTarget(option && option.scene) || resolveHomeShareTarget(option)
if (shareTargetPath) { if (shareTargetPath) {
reopenShareEnter(shareTargetPath)
this.pendingShareTargetPath = shareTargetPath this.pendingShareTargetPath = shareTargetPath
uni.setStorageSync('pendingShareTargetPath', shareTargetPath) uni.setStorageSync('pendingShareTargetPath', shareTargetPath)
} }
@ -985,7 +986,9 @@
this.enableShareMenu() this.enableShareMenu()
this.startDeliveryTimeTimer() this.startDeliveryTimeTimer()
this.runHomeInit() this.runHomeInit()
if (this.openShareTargetIfNeeded()) return if (consumeShareRedirectSuppression()) {
this.discardHandledShareRedirect()
} else if (this.openShareTargetIfNeeded()) return
if (this.pendingTabIndex !== null) { if (this.pendingTabIndex !== null) {
const tabIndex = this.pendingTabIndex const tabIndex = this.pendingTabIndex
const shouldShowDeliveryRuleConfirm = this.pendingDeliveryRuleConfirm && tabIndex == 1 const shouldShowDeliveryRuleConfirm = this.pendingDeliveryRuleConfirm && tabIndex == 1
@ -1141,6 +1144,13 @@
} }
return this.normalizeShareTargetPath(targetPath) return this.normalizeShareTargetPath(targetPath)
}, },
discardHandledShareRedirect() {
const targetPath = this.pendingShareTargetPath || this.resolveShareTargetPath(uni.getStorageSync('pendingShareTargetPath') || '')
if (!targetPath || !isShareTargetHandled(targetPath)) return
this.pendingShareTargetPath = ''
this.openingShareTargetPath = ''
uni.removeStorageSync('pendingShareTargetPath')
},
openShareTargetIfNeeded() { openShareTargetIfNeeded() {
if (!this.pendingShareTargetPath) { if (!this.pendingShareTargetPath) {
this.pendingShareTargetPath = this.resolveShareTargetPath(uni.getStorageSync('pendingShareTargetPath') || '') this.pendingShareTargetPath = this.resolveShareTargetPath(uni.getStorageSync('pendingShareTargetPath') || '')
@ -1149,11 +1159,16 @@
} }
} }
if (!this.pendingShareTargetPath) return false if (!this.pendingShareTargetPath) return false
if (isShareTargetHandled(this.pendingShareTargetPath)) {
this.discardHandledShareRedirect()
return false
}
if (!uni.getStorageSync('area')) return true if (!uni.getStorageSync('area')) return true
const targetPath = this.pendingShareTargetPath const targetPath = this.pendingShareTargetPath
if (this.openingShareTargetPath === targetPath) return true if (this.openingShareTargetPath === targetPath) return true
this.openingShareTargetPath = targetPath this.openingShareTargetPath = targetPath
this.pendingShareTargetPath = '' this.pendingShareTargetPath = ''
completeShareEnter(targetPath)
uni.removeStorageSync('pendingShareTargetPath') uni.removeStorageSync('pendingShareTargetPath')
uni.removeStorageSync('authPendingTargetPath') uni.removeStorageSync('authPendingTargetPath')
this.$nextTick(() => { this.$nextTick(() => {
@ -1168,12 +1183,15 @@
uni.navigateTo({ uni.navigateTo({
url: targetPath, url: targetPath,
fail: () => { fail: () => {
reopenShareEnter(targetPath)
this.pendingShareTargetPath = targetPath this.pendingShareTargetPath = targetPath
uni.setStorageSync('pendingShareTargetPath', targetPath) uni.setStorageSync('pendingShareTargetPath', targetPath)
this.openingShareTargetPath = '' this.openingShareTargetPath = targetPath
uni.redirectTo({ uni.redirectTo({
url: targetPath, url: targetPath,
success: () => { success: () => {
completeShareEnter(targetPath)
this.pendingShareTargetPath = ''
uni.removeStorageSync('pendingShareTargetPath') uni.removeStorageSync('pendingShareTargetPath')
this.openingShareTargetPath = '' this.openingShareTargetPath = ''
}, },

Loading…
Cancel
Save