修复小程序推荐页系统分享直达作品

同步推荐页当前作品到小程序原生分享目标
保留小程序系统分享路径中的公开作品参数
补充小程序分享目标解析与前端消息发送测试
This commit is contained in:
kdletters
2026-06-11 22:30:23 +08:00
parent c5763fdf25
commit d78c11d5b7
6 changed files with 299 additions and 7 deletions

View File

@@ -12,6 +12,9 @@ const {
} = require('../../config');
const {
appendHashParams,
buildWebViewSharePath,
buildWebViewShareTimelineQuery,
resolveShareTargetFromWebViewMessage,
resolveWebViewUrlFromRuntimeConfig,
} = require('./index.shared');
@@ -23,7 +26,6 @@ const AUTH_RESULT_STORAGE_KEY = 'genarrative:mini-program-auth-result';
const AUTH_ACTION_LOGIN = 'login';
const PAY_RESULT_RECHECK_DELAY_MS = 120;
const WEB_VIEW_SHARE_TITLE = '陶泥儿';
const WEB_VIEW_SHARE_PATH = '/pages/web-view/index';
function showWebViewShareMenu() {
if (typeof wx.showShareMenu !== 'function') {
@@ -36,17 +38,25 @@ function showWebViewShareMenu() {
});
}
function buildWebViewShareAppMessage() {
function resolveNativeShareQuery(page) {
return (
(page && page._currentShareTarget) ||
(page && page._lastLaunchQuery) ||
{}
);
}
function buildWebViewShareAppMessage(query = {}) {
return {
title: WEB_VIEW_SHARE_TITLE,
path: WEB_VIEW_SHARE_PATH,
path: buildWebViewSharePath(query),
};
}
function buildWebViewShareTimeline() {
function buildWebViewShareTimeline(query = {}) {
return {
title: WEB_VIEW_SHARE_TITLE,
query: '',
query: buildWebViewShareTimelineQuery(query),
};
}
@@ -669,15 +679,19 @@ Page({
},
handleWebViewMessage(event) {
const shareTarget = resolveShareTargetFromWebViewMessage(event.detail);
if (shareTarget) {
this._currentShareTarget = shareTarget;
}
// 中文注释:支付和订阅消息都由独立 native 页面承接web-view 消息只保留调试输出。
console.info('[web-view] message', event.detail);
},
onShareAppMessage() {
return buildWebViewShareAppMessage();
return buildWebViewShareAppMessage(resolveNativeShareQuery(this));
},
onShareTimeline() {
return buildWebViewShareTimeline();
return buildWebViewShareTimeline(resolveNativeShareQuery(this));
},
});