产品化改造:完善本地集成与启动体验
This commit is contained in:
@@ -20,6 +20,7 @@ import {
|
||||
syncCookieAndGetNewSessionUrl,
|
||||
syncCookieAndGetChatUrl,
|
||||
persistTicketCookie,
|
||||
normalizeLocalBackendRedirect,
|
||||
} from "../../services/utils/sessionUrl";
|
||||
import { logger } from "../../services/utils/logService";
|
||||
import { APP_DISPLAY_NAME } from "@shared/constants";
|
||||
@@ -89,19 +90,47 @@ function SessionsPage({
|
||||
}
|
||||
};
|
||||
const onWillRedirect = (e: any) => {
|
||||
const normalizedUrl = normalizeLocalBackendRedirect(
|
||||
e.newURL,
|
||||
webviewUrl,
|
||||
);
|
||||
if (normalizedUrl) {
|
||||
logger.warn(
|
||||
"[SessionsPage][WebviewNav] normalized local backend redirect",
|
||||
"SessionsPage",
|
||||
{
|
||||
from: e.oldURL,
|
||||
to: e.newURL,
|
||||
normalizedUrl,
|
||||
},
|
||||
);
|
||||
e.preventDefault?.();
|
||||
el.loadURL?.(normalizedUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info("[SessionsPage][WebviewNav] will-redirect", "SessionsPage", {
|
||||
from: e.oldURL,
|
||||
to: e.newURL,
|
||||
});
|
||||
};
|
||||
const onDidFailLoad = (e: any) => {
|
||||
logger.warn("[SessionsPage][WebviewNav] did-fail-load", "SessionsPage", {
|
||||
url: e.validatedURL || e.url,
|
||||
errorCode: e.errorCode,
|
||||
errorDescription: e.errorDescription,
|
||||
});
|
||||
};
|
||||
|
||||
el.addEventListener("did-navigate", onDidNavigate);
|
||||
el.addEventListener("did-navigate-in-page", onDidNavigate);
|
||||
el.addEventListener("will-redirect", onWillRedirect);
|
||||
el.addEventListener("did-fail-load", onDidFailLoad);
|
||||
return () => {
|
||||
el.removeEventListener("did-navigate", onDidNavigate);
|
||||
el.removeEventListener("did-navigate-in-page", onDidNavigate);
|
||||
el.removeEventListener("will-redirect", onWillRedirect);
|
||||
el.removeEventListener("did-fail-load", onDidFailLoad);
|
||||
};
|
||||
}, [view, webviewUrl]); // eslint-disable-line react-hooks/exhaustive-deps
|
||||
|
||||
|
||||
Reference in New Issue
Block a user