|
|
|
@ -93,7 +93,7 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { resolveHomeShareTarget, getEnterShareTarget } from '@/utils/sharePath.js' |
|
|
|
import { resolveHomeShareTarget, getEnterShareTarget, resolveMiniCodeSceneTarget, reopenShareEnter } from '@/utils/sharePath.js' |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
@ -331,11 +331,40 @@ |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
isGroupBuyPage(url) { |
|
|
|
const value = String(url || '') |
|
|
|
return value.indexOf('/package2/group/groupBuySingle') === 0 || value.indexOf('package2/group/groupBuySingle') === 0 |
|
|
|
}, |
|
|
|
openGroupPageViaHome(targetPath, done, fallbackHome) { |
|
|
|
reopenShareEnter(targetPath) |
|
|
|
uni.setStorageSync('pendingShareTargetPath', targetPath) |
|
|
|
uni.switchTab({ |
|
|
|
url: '/pages/index/index', |
|
|
|
success: done, |
|
|
|
fail: () => { |
|
|
|
uni.reLaunch({ |
|
|
|
url: '/pages/index/index', |
|
|
|
success: done, |
|
|
|
fail: fallbackHome |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
resolveEnterTargetPath() { |
|
|
|
let options = null |
|
|
|
try { |
|
|
|
if (uni.getEnterOptionsSync) options = uni.getEnterOptionsSync() |
|
|
|
} catch (e) {} |
|
|
|
const query = options && options.query |
|
|
|
return resolveMiniCodeSceneTarget(query && query.scene) || getEnterShareTarget(options) || '' |
|
|
|
}, |
|
|
|
goAfterLogin(clearRedirect) { |
|
|
|
const pendingPath = this.redirectKey ? uni.getStorageSync(this.redirectKey) : '' |
|
|
|
const fallbackTargetPath = uni.getStorageSync('authPendingTargetPath') || uni.getStorageSync('pendingShareTargetPath') || getEnterShareTarget() || '' |
|
|
|
const fallbackTargetPath = uni.getStorageSync('authPendingTargetPath') || uni.getStorageSync('pendingShareTargetPath') || this.resolveEnterTargetPath() || '' |
|
|
|
const targetUrl = pendingPath || fallbackTargetPath || '/pages/index/index' |
|
|
|
const homeTargetPath = this.extractHomeTargetPath(targetUrl) |
|
|
|
const shareTargetPath = homeTargetPath || (targetUrl.indexOf('/pages/index/index') === 0 || targetUrl.indexOf('pages/index/index') === 0 ? '' : targetUrl) |
|
|
|
if (shareTargetPath) reopenShareEnter(shareTargetPath) |
|
|
|
if (homeTargetPath) { |
|
|
|
uni.setStorageSync('pendingShareTargetPath', homeTargetPath) |
|
|
|
} |
|
|
|
@ -353,8 +382,10 @@ |
|
|
|
} |
|
|
|
const fallbackHome = () => { |
|
|
|
if (homeTargetPath) { |
|
|
|
reopenShareEnter(homeTargetPath) |
|
|
|
uni.setStorageSync('pendingShareTargetPath', homeTargetPath) |
|
|
|
} else if (targetUrl && targetUrl.indexOf('/pages/index/index') !== 0 && targetUrl.indexOf('pages/index/index') !== 0) { |
|
|
|
reopenShareEnter(targetUrl) |
|
|
|
uni.setStorageSync('pendingShareTargetPath', targetUrl) |
|
|
|
} |
|
|
|
uni.reLaunch({ |
|
|
|
@ -369,6 +400,7 @@ |
|
|
|
}) |
|
|
|
} |
|
|
|
if (needsAreaBeforeTarget) { |
|
|
|
reopenShareEnter(targetUrl) |
|
|
|
uni.setStorageSync('pendingShareTargetPath', targetUrl) |
|
|
|
uni.reLaunch({ |
|
|
|
url: '/pages/index/index', |
|
|
|
@ -385,6 +417,11 @@ |
|
|
|
}) |
|
|
|
return |
|
|
|
} |
|
|
|
const groupTargetPath = this.isGroupBuyPage(shareTargetPath) ? shareTargetPath : (this.isGroupBuyPage(targetUrl) ? targetUrl : '') |
|
|
|
if (groupTargetPath) { |
|
|
|
this.openGroupPageViaHome(groupTargetPath, done, fallbackHome) |
|
|
|
return |
|
|
|
} |
|
|
|
uni.redirectTo({ |
|
|
|
url: targetUrl, |
|
|
|
success: done, |
|
|
|
|