在Xamarin页面之间导航时,Webview会话存储丢失



我有一个Xamarin.Forms应用程序,有两个页面,一个有WebView,另一个只有文本。

会话存储在页面之间导航时丢失数据。

//APage.xaml

<WebView x:Name="webView" WidthRequest="1000" HeightRequest="1000" Navigated="webView_Navigated">
<WebView.Source>
<UrlWebViewSource />
</WebView.Source>
</WebView>

//BPage.xaml

<Span Text="Hi B Page"/>

//APage.xaml.cs

...
public BPage()
{
InitializeComponent();
(webView.Source as UrlWebViewSource).Url = "mytestsite.com";
}
private async void webView_Navigated(object sender, WebNavigatedEventArgs e)
{
var webView = sender as WebView;

var token = await webView.EvaluateJavaScriptAsync("window.sessionStorage.getItem('token')");
System.Console.WriteLine(token); //Every time I Go to BPage and back, it is null.
}

我的网站返回一个";在会话存储中找不到令牌";错误

//每次我转到B页并返回时,它都是空的。

当您navigate from B to A时,页面B将被释放,每次navigate from A to B时,您都会导航到新的页面B(不是每次都是相同的页面B(。

你使用的每个webView都在不同的页面B下,这就是你得到null的原因。

这是关于导航的文档。

您可以使用Xamarin.Essentials:在应用程序中保存令牌的首选项。

保存:

Preferences.Set("my_key", "my_value");

读取:

var myValue = Preferences.Get("my_key", "default_value");

最新更新