|
|
|
@ -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 { |
|
|
|
|