- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 js 函数 getState() 返回元素的 css 属性( block 或无)但它不工作,visual studio 给出了一些线程消息:
09-14 23:30:22.081 W/WebView (6707): java.lang.Throwable: 在线程“Thread-12”上调用了 WebView 方法。所有 WebView 方法都必须在同一个线程上调用。 (预期的 Looper Looper (main, tid 2) {4aca651} 调用了 null,仅供引用,main Looper 是 Looper (main, tid 2) {4aca651})09-14 23:30:22.081 W/WebView(6707):在 android.webkit.WebView.checkThread(WebView.java:2539)09-14 23:30:22.081 W/WebView (6707): 在 android.webkit.WebView.evaluateJavascript(WebView.java:1054)线程已完成:#4
谁能找出错误在哪里?此外,当它起作用时,返回的类型可以与标签文本相关联,或者它不会是一个简单的字符串?
我的代码:
public static Label label1;
public static WebView webnav;
StackLayout parent = null;
public MainPage()
{
InitializeComponent();
webnav = new WebView
{
HeightRequest = 1000,
WidthRequest = 1000,
Source = "https://www.example.com/test.html",
};
webnav.Navigated += WebView_Navigated;
label1 = new Label
{
WidthRequest = 900,
HeightRequest = 60,
Text = "default text"
};
parent = new StackLayout();
parent.Children.Add(webnav);
parent.Children.Add(label1);
Content = parent;
}
public void WebView_Navigated(object sender, WebNavigatedEventArgs e)
{
Task.Run(JSRun);
}
public static string retorno;
public static async Task JSRun()
{
retorno = await webnav.EvaluateJavaScriptAsync("getState();");
}
最佳答案
All WebView methods must be called on the same thread... FYI main Looper is Looper (main, tid 2)
您正在使用 Task.Run
执行一个方法,该方法又调用 EvaluateJavaScriptAsync
,因此您不在主/UI 线程上。这就是错误试图告诉您的内容。
因此删除 Task.Run:
public void WebView_Navigated(object sender, WebNavigatedEventArgs e)
{
JSRun();
}
或者将您的 EvaluateJavaScriptAsync
调用发布到 UI 消息/循环程序队列:
Device.BeginInvokeOnMainThread(async() =>
{
retorno = await webnav.EvaluateJavaScriptAsync("getState();");
});
关于c# - 为什么 EvaluateJavaScriptAsync 没有被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52339100/
我有 js 函数 getState() 返回元素的 css 属性( block 或无)但它不工作,visual studio 给出了一些线程消息: 09-14 23:30:22.081 W/WebVi
我是一名优秀的程序员,十分优秀!