我已经在xaml中创建了带有WebView的ContenPage(下面的代码)。我在构造函数中传递webpageURL。我的目标是在开始加载传递的URL之前,使用javascirpt将项目添加到webview localstorage。我尝试了
之类的几种方法Browser.EvaluateJavaScriptAsync(javascirpt); 要么 Browser.Evaluate(javascirpt);
在构造函数中执行之前
Browser.Source = URL;
或将此方法包装在
中Device.BeginInvokeOnMainThread(async()=> {});
但是他们仍然没有按预期工作。您知道我的问题有什么解决办法吗?
public partial class WebView : ContentPage
{
public WebView(string URL)
{
string item = "test";
string javascirpt = String.Format("localStorage.setItem('ls.item', '{0}')", item);
Browser.Eval(javascirpt);
Browser.Source = URL;
}
}
Xaml:
<WebView x:Name="Browser" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2"
HeightRequest="1000"
WidthRequest="1000"
Navigating="WebOnNavigating"
Navigated="WebOnEndNavigating" />
答案 0 :(得分:0)
我们不建议将这些代码放入构造函数中。因为调用这些代码时尚未初始化“ WebView”类。请尝试将其移至方法OnAppearing。
protected override void OnAppearing()
{
base.OnAppearing();
string item = "test";
string javascirpt = String.Format("localStorage.setItem('ls.item', '{0}')", item);
Browser.Eval(javascirpt);
Browser.Source = URL;
}