Merge pull request #3896 from sbwalker/dev

add Platform property to SiteState and populate on both Web and .NET MAUI
This commit is contained in:
Shaun Walker 2024-02-26 14:13:13 -05:00 committed by GitHub
commit 176dc17c70
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 12 additions and 4 deletions

View File

@ -47,6 +47,9 @@
[Parameter]
public string AuthorizationToken { get; set; } = "";
[Parameter]
public string Platform { get; set; } = "";
[CascadingParameter]
HttpContext HttpContext { get; set; }
@ -71,6 +74,7 @@
SiteState.AntiForgeryToken = AntiForgeryToken;
SiteState.AuthorizationToken = AuthorizationToken;
SiteState.RemoteIPAddress = (_pageState != null) ? _pageState.RemoteIPAddress : "";
SiteState.Platform = Platform;
SiteState.IsPrerendering = (HttpContext != null) ? true : false;
_installation = await InstallationService.IsInstalled();

View File

@ -21,6 +21,7 @@ else
Parameters = new Dictionary<string, object>();
Parameters.Add(new KeyValuePair<string, object>("RenderMode", RenderModes.Interactive));
Parameters.Add(new KeyValuePair<string, object>("Runtime", Runtimes.Hybrid));
Parameters.Add(new KeyValuePair<string, object>("Platform", DeviceInfo.Current.Platform.ToString()));
if (MauiConstants.UseAppSettings)
{

View File

@ -24,7 +24,7 @@ public static class MauiProgram
builder.Services.AddMauiBlazorWebView();
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
#endif
#endif
var apiurl = LoadAppSettings();

View File

@ -62,11 +62,11 @@
{
@if (_renderMode == RenderModes.Static)
{
<Routes PageState="@_pageState" RenderMode="@_renderMode" Runtime="@_runtime" AntiForgeryToken="@_antiForgeryToken" AuthorizationToken="@_authorizationToken" />
<Routes PageState="@_pageState" RenderMode="@_renderMode" Runtime="@_runtime" AntiForgeryToken="@_antiForgeryToken" AuthorizationToken="@_authorizationToken" Platform="@_platform" />
}
else
{
<Routes PageState="@_pageState" RenderMode="@_renderMode" Runtime="@_runtime" AntiForgeryToken="@_antiForgeryToken" AuthorizationToken="@_authorizationToken" @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(_runtime, _prerender)" />
<Routes PageState="@_pageState" RenderMode="@_renderMode" Runtime="@_runtime" AntiForgeryToken="@_antiForgeryToken" AuthorizationToken="@_authorizationToken" Platform="@_platform" @rendermode="InteractiveRenderMode.GetInteractiveRenderMode(_runtime, _prerender)" />
}
<script src="js/interop.js"></script>
@ -96,10 +96,11 @@
private string _runtime = Runtimes.Server;
private bool _prerender = true;
private int _visitorId = -1;
private string _antiForgeryToken = "";
private string _remoteIPAddress = "";
private string _platform = "";
private string _authorizationToken = "";
private string _language = "en";
private string _antiForgeryToken = "";
private string _headResources = "";
private string _bodyResources = "";
private string _styleSheets = "";
@ -116,6 +117,7 @@
{
_antiForgeryToken = Antiforgery.GetAndStoreTokens(Context).RequestToken;
_remoteIPAddress = Context.Connection.RemoteIpAddress?.ToString() ?? "";
_platform = System.Runtime.InteropServices.RuntimeInformation.OSDescription;
// if framework is installed
if (ConfigManager.IsInstalled())

View File

@ -12,6 +12,7 @@ namespace Oqtane.Shared
public string AntiForgeryToken { get; set; } // passed from server for use in service calls on client
public string AuthorizationToken { get; set; } // passed from server for use in service calls on client
public string RemoteIPAddress { get; set; } // passed from server as cannot be reliably retrieved on client
public string Platform { get; set; }
public bool IsPrerendering { get; set; }
private dynamic _properties;