首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问Xamarin.Forms.WebView之前将项添加到本地存储中

访问Xamarin.Forms.WebView之前将项添加到本地存储中
EN

Stack Overflow用户
提问于 2018-11-27 16:16:11
回答 1查看 1.2K关注 0票数 1

我在xaml中创建了带有ContenPage的WebView (下面的代码)。我正在构造函数中传递webpageURL。我的目标是在开始加载传递的URL之前,使用javascirpt将项添加到webview区域存储中。我尝试了几种方法,比如

Browser.EvaluateJavaScriptAsync(javascirpt);或Browser.Evaluate(javascirpt);

在构造函数中执行之前

Browser.Source = URL;

或将此方法包装在

Device.BeginInvokeOnMainThread(异步() =>{});

但他们还是不像想象的那样工作。你知道我的问题有什么解决办法吗?

代码语言:javascript
复制
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:

代码语言:javascript
复制
<WebView x:Name="Browser" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2"
          HeightRequest="1000"
          WidthRequest="1000"
          Navigating="WebOnNavigating"
          Navigated="WebOnEndNavigating" />
EN

回答 1

Stack Overflow用户

发布于 2018-11-28 02:03:08

我们不建议将这些代码放在构造函数.Because中--当调用这些code.Try将它们移动到方法OnAppearing时,类"WebView“还没有初始化。

代码语言:javascript
复制
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;

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53503847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档