wangfukang 1 month ago
parent
commit
3e324d156e
  1. 35
      utils/sharePath.js

35
utils/sharePath.js

@ -97,6 +97,41 @@ export function getEnterShareTarget(options) {
return resolveHomeShareTarget(options && options.query)
}
// 同一次分享进入只跳转一次。小程序切回前台、关闭图片预览都会再次触发 onShow,
// 且 App.onShow 仍可能带上最初的分享参数。
const handledShareTargets = Object.create(null)
export function stageShareEnter(options) {
const targetPath = resolveMiniCodeSceneTarget(options && options.query && options.query.scene) || getEnterShareTarget(options)
if (!targetPath) return { targetPath: '', alreadyHandled: false }
if (handledShareTargets[targetPath]) return { targetPath: '', alreadyHandled: true }
return { targetPath: targetPath, alreadyHandled: false }
}
export function isShareTargetHandled(targetPath) {
return !!(targetPath && handledShareTargets[targetPath])
}
export function completeShareEnter(targetPath) {
if (targetPath) handledShareTargets[targetPath] = true
}
export function reopenShareEnter(targetPath) {
if (targetPath) delete handledShareTargets[targetPath]
}
let suppressShareRedirectOnce = false
export function suppressNextShareRedirect() {
suppressShareRedirectOnce = true
}
export function consumeShareRedirectSuppression() {
if (!suppressShareRedirectOnce) return false
suppressShareRedirectOnce = false
return true
}
export function getCurrentEnterShareTarget() {
let options = null
try {

Loading…
Cancel
Save