fix: use WebMessageAsJson and post plain objects (not JSON strings)

This commit is contained in:
SuperDooper
2026-05-08 16:15:04 +02:00
parent 0300e4a72e
commit b594889239
+4 -4
View File
@@ -75,7 +75,7 @@ public partial class LoginWindow : Window
msgHandler = (_, args) => msgHandler = (_, args) =>
{ {
Browser.CoreWebView2.WebMessageReceived -= msgHandler; Browser.CoreWebView2.WebMessageReceived -= msgHandler;
tcs.TrySetResult(args.WebMessageAsString); tcs.TrySetResult(args.WebMessageAsJson);
}; };
Browser.CoreWebView2.WebMessageReceived += msgHandler; Browser.CoreWebView2.WebMessageReceived += msgHandler;
@@ -95,12 +95,12 @@ public partial class LoginWindow : Window
if(!id){ if(!id){
let pu=null; let pu=null;
try{pu=await(await fetch('/api/usage',h)).json();}catch(e3){} try{pu=await(await fetch('/api/usage',h)).json();}catch(e3){}
window.chrome.webview.postMessage(JSON.stringify({email:e,orgId:null,usage:(pu&&!pu.error?pu:null),debug:'no-org|bkeys:'+bkeys+'|akeys:'+akeys})); window.chrome.webview.postMessage({email:e,orgId:null,usage:(pu&&!pu.error?pu:null),debug:'no-org|bkeys:'+bkeys+'|akeys:'+akeys});
return; return;
} }
const u=await(await fetch('/api/organizations/'+id+'/usage',h)).json(); const u=await(await fetch('/api/organizations/'+id+'/usage',h)).json();
window.chrome.webview.postMessage(JSON.stringify({email:e,orgId:id,usage:u,debug:'orgSrc:'+orgSrc+'|bkeys:'+bkeys+'|akeys:'+akeys})); window.chrome.webview.postMessage({email:e,orgId:id,usage:u,debug:'orgSrc:'+orgSrc+'|bkeys:'+bkeys+'|akeys:'+akeys});
}catch(ex){window.chrome.webview.postMessage(JSON.stringify({error:String(ex)}));}})()"; }catch(ex){window.chrome.webview.postMessage({error:String(ex)});}})()";
await Browser.CoreWebView2.ExecuteScriptAsync(script); await Browser.CoreWebView2.ExecuteScriptAsync(script);