@@ -835,13 +835,13 @@ export default function MainView({ className, initService }) {
|
||||
left: "0",
|
||||
bottom: "0",
|
||||
color: "#fff",
|
||||
fontSize: "12px",
|
||||
fontSize: "11px",
|
||||
opacity: ".9",
|
||||
zIndex: "999",
|
||||
backgroundColor: "rgba(0,0,0,0.7)",
|
||||
padding: "6px",
|
||||
width: "800px",
|
||||
height: "700px",
|
||||
padding: "8px",
|
||||
width: "700px",
|
||||
height: "550px",
|
||||
borderRadius: "5px",
|
||||
fontFamily: "monospace",
|
||||
overflow: "hidden",
|
||||
@@ -853,30 +853,66 @@ export default function MainView({ className, initService }) {
|
||||
<div
|
||||
style={{
|
||||
fontWeight: "bold",
|
||||
marginBottom: "2px",
|
||||
marginBottom: "5px",
|
||||
color: "#00ff00",
|
||||
fontSize: "11px",
|
||||
fontSize: "10px",
|
||||
}}
|
||||
>
|
||||
🔗 Deep Link Debug Info
|
||||
</div>
|
||||
|
||||
<div style={{ display: "flex", gap: "10px", height: "100%" }}>
|
||||
<div style={{ display: "flex", gap: "5px", height: "100%" }}>
|
||||
{/* Left Column */}
|
||||
<div style={{ flex: 1, fontSize: "12px" }}>
|
||||
<div style={{ flex: 1, fontSize: "11px" }}>
|
||||
{/* Current State */}
|
||||
<div style={{ marginBottom: "5px" }}>
|
||||
<div style={{ color: "#ffff00", marginBottom: "2px" }}>
|
||||
📊 Current:
|
||||
</div>
|
||||
<div>
|
||||
isDeepLink:{" "}
|
||||
<span
|
||||
style={{
|
||||
color: deepLinkInfo.isDeepLink ? "#00ff00" : "#ff6666",
|
||||
}}
|
||||
>
|
||||
{deepLinkInfo.isDeepLink ? "✓" : "✗"}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
contentTarget:{" "}
|
||||
<span
|
||||
style={{
|
||||
color: deepLinkInfo.contentTarget ? "#00ff00" : "#ff6666",
|
||||
}}
|
||||
>
|
||||
{deepLinkInfo.contentTarget || "MISSING"}
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
panels: {panels.length}, top:{" "}
|
||||
{panels.length > 0 ? panels[panels.length - 1].name : "none"}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* App Status */}
|
||||
<div style={{ marginBottom: "6px" }}>
|
||||
<div style={{ color: "#ffff00", marginBottom: "0px" }}>
|
||||
<div style={{ marginBottom: "5px" }}>
|
||||
<div style={{ color: "#ffff00", marginBottom: "2px" }}>
|
||||
📱 System:
|
||||
</div>
|
||||
<div>webOS: {appStatus.webOSVersion || "unknown"}</div>
|
||||
<div>deviceId: {appStatus.deviceId || "unknown"}</div>
|
||||
<div>
|
||||
deviceId:{" "}
|
||||
{appStatus.deviceId
|
||||
? appStatus.deviceId.substring(0, 8) + "..."
|
||||
: "unknown"}
|
||||
</div>
|
||||
<div>server: {appStatus.serverHOST || "unknown"}</div>
|
||||
</div>
|
||||
|
||||
{/* Redux State */}
|
||||
<div>
|
||||
<div style={{ color: "#ffff00", marginBottom: "0px" }}>
|
||||
<div style={{ color: "#ffff00", marginBottom: "2px" }}>
|
||||
🏪 Redux:
|
||||
</div>
|
||||
<div>deepLink: {JSON.stringify(deepLinkInfo)}</div>
|
||||
@@ -885,120 +921,94 @@ export default function MainView({ className, initService }) {
|
||||
</div>
|
||||
|
||||
{/* Right Column */}
|
||||
<div style={{ flex: 1, fontSize: "12px" }}>
|
||||
<div style={{ flex: 1, fontSize: "11px" }}>
|
||||
{/* Launch Params */}
|
||||
<div>
|
||||
<div style={{ color: "#ffff00", marginBottom: "0px" }}>
|
||||
<div style={{ marginBottom: "5px" }}>
|
||||
<div style={{ color: "#ffff00", marginBottom: "2px" }}>
|
||||
📱 Launch Params:
|
||||
</div>
|
||||
{(() => {
|
||||
try {
|
||||
// 항상 모든 정보를 표시
|
||||
const hasWebOS =
|
||||
if (
|
||||
!(
|
||||
typeof window === "object" &&
|
||||
window.PalmSystem &&
|
||||
window.PalmSystem.launchParams;
|
||||
window.PalmSystem.launchParams
|
||||
)
|
||||
) {
|
||||
return (
|
||||
<div style={{ color: "#ff6666" }}>
|
||||
No webOS environment
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
let raw = "N/A";
|
||||
let parsed = {};
|
||||
let containerFlag = "N/A";
|
||||
let finalParams = {};
|
||||
let contentTarget = "N/A";
|
||||
let parseError = null;
|
||||
|
||||
if (hasWebOS) {
|
||||
try {
|
||||
raw = window.PalmSystem.launchParams;
|
||||
parsed = JSON.parse(raw);
|
||||
containerFlag = parsed["x-webos-app-container-launch"];
|
||||
finalParams =
|
||||
const raw = window.PalmSystem.launchParams;
|
||||
const parsed = JSON.parse(raw);
|
||||
const containerFlag = parsed["x-webos-app-container-launch"];
|
||||
const finalParams =
|
||||
containerFlag === true ? parsed.details : parsed;
|
||||
contentTarget = finalParams.contentTarget;
|
||||
} catch (e) {
|
||||
parseError = e.message;
|
||||
}
|
||||
}
|
||||
const contentTarget = finalParams.contentTarget;
|
||||
|
||||
return (
|
||||
<>
|
||||
<div style={{ marginBottom: "1px" }}>
|
||||
<span
|
||||
style={{ color: hasWebOS ? "#00ff00" : "#ff6666" }}
|
||||
>
|
||||
webOS환경: {hasWebOS ? "✓" : "✗"}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div style={{ marginBottom: "1px" }}>
|
||||
<div style={{ color: "#ffff00" }}>
|
||||
raw (최초 파라미터):
|
||||
</div>
|
||||
<div
|
||||
style={{
|
||||
fontSize: "10px",
|
||||
color: "#cccccc",
|
||||
marginLeft: "5px",
|
||||
whiteSpace: "pre-wrap",
|
||||
wordBreak: "break-all",
|
||||
}}
|
||||
>
|
||||
{raw}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style={{ marginBottom: "1px" }}>
|
||||
containerFlag: {String(containerFlag)}
|
||||
</div>
|
||||
|
||||
<div style={{ marginBottom: "1px" }}>
|
||||
<div style={{ color: "#ffff00" }}>initialParse:</div>
|
||||
<div
|
||||
style={{
|
||||
fontSize: "10px",
|
||||
color: "#cccccc",
|
||||
marginLeft: "5px",
|
||||
whiteSpace: "pre-wrap",
|
||||
wordBreak: "break-all",
|
||||
}}
|
||||
>
|
||||
{JSON.stringify(parsed, null, 2)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style={{ marginBottom: "1px" }}>
|
||||
<div style={{ color: "#ffff00" }}>finalParams:</div>
|
||||
<div
|
||||
style={{
|
||||
fontSize: "10px",
|
||||
color: "#cccccc",
|
||||
marginLeft: "5px",
|
||||
whiteSpace: "pre-wrap",
|
||||
wordBreak: "break-all",
|
||||
}}
|
||||
>
|
||||
{JSON.stringify(finalParams, null, 2)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>raw: {raw.substring(0, 50)}...</div>
|
||||
<div>containerFlag: {String(containerFlag)}</div>
|
||||
<div>
|
||||
contentTarget:{" "}
|
||||
<span
|
||||
style={{
|
||||
color:
|
||||
contentTarget && contentTarget !== "N/A"
|
||||
? "#00ff00"
|
||||
: "#ff6666",
|
||||
color: contentTarget ? "#00ff00" : "#ff6666",
|
||||
}}
|
||||
>
|
||||
{contentTarget || "MISSING"}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{parseError && (
|
||||
<div style={{ color: "#ff6666", marginTop: "2px" }}>
|
||||
Parse Error: {parseError}
|
||||
</>
|
||||
);
|
||||
} catch (e) {
|
||||
return (
|
||||
<div style={{ color: "#ff6666" }}>Error: {e.message}</div>
|
||||
);
|
||||
}
|
||||
})()}
|
||||
</div>
|
||||
|
||||
{/* Real-time Check */}
|
||||
<div>
|
||||
<div style={{ color: "#ffff00", marginBottom: "2px" }}>
|
||||
🔄 Real-time:
|
||||
</div>
|
||||
{(() => {
|
||||
try {
|
||||
let currentParams = {};
|
||||
if (
|
||||
typeof window === "object" &&
|
||||
window.PalmSystem &&
|
||||
window.PalmSystem.launchParams
|
||||
) {
|
||||
currentParams = JSON.parse(window.PalmSystem.launchParams);
|
||||
if (
|
||||
currentParams["x-webos-app-container-launch"] === true
|
||||
) {
|
||||
currentParams = currentParams.details;
|
||||
}
|
||||
}
|
||||
return (
|
||||
<>
|
||||
<div>time: {new Date().toLocaleTimeString()}</div>
|
||||
<div>
|
||||
current:{" "}
|
||||
<span
|
||||
style={{
|
||||
color: currentParams.contentTarget
|
||||
? "#00ff00"
|
||||
: "#ff6666",
|
||||
}}
|
||||
>
|
||||
{currentParams.contentTarget || "MISSING"}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
} catch (e) {
|
||||
@@ -1010,6 +1020,36 @@ export default function MainView({ className, initService }) {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Parsed Deep Link */}
|
||||
{deepLinkInfo.contentTarget && (
|
||||
<div
|
||||
style={{ marginTop: "8px", fontSize: "8px", paddingBottom: "5px" }}
|
||||
>
|
||||
<div style={{ color: "#ffff00", marginBottom: "2px" }}>
|
||||
🔍 Parsed:
|
||||
</div>
|
||||
{(() => {
|
||||
const tokens = deepLinkInfo.contentTarget.split("_");
|
||||
if (tokens[0] === "V2" || tokens[0] === "V3") {
|
||||
return (
|
||||
<>
|
||||
<div>
|
||||
Version: {tokens[0]}, Code: {tokens[1]}, Name: {tokens[2]}
|
||||
, Type: {tokens[3]}
|
||||
</div>
|
||||
{tokens.length > 4 && (
|
||||
<div>Extra: {tokens.slice(4).join("_")}</div>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<div style={{ color: "#ff6666" }}>❌ Not V2/V3 format</div>
|
||||
);
|
||||
})()}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user