我试图从WebView中javascript调用的方法调用WebView方法。然后Webview应该返回方法中使用的值。
html事件-
显然,Webview在ui线程中运行,而js不运行,webview的方法必须从同一个线程调用。此方法可用于从非ui线程调用方法:
webView.post(new Runnable() {
public void run() {
webView.loadUrl("javascript:" + s + ";");
}
});
但我也想返回结果<代码>返回webView。例如,getUrl()。我该怎么做?
正如您所说,当您从JS向JavaBridge调用方法,然后从非ui线程向类调用方法时,您必须使用侦听器/回调。完成加载url
后,调用侦听器传递所需的字符串url。
在这个示例中,我定义了一个带有onGetWebViewUrl
监听器的内部接口。我通过在同一个类中实现接口来注册侦听器,所以我可以很容易地调用它。
例如:
public class WebViewProxy implement WebViewListener {
private WebView mWebView;
...
@JavascriptInterface
public void onJsStuff(){
webView.post(new Runnable() {
public void run() {
mWebView.loadUrl("javascript:" + s + ";");
WebViewProxy.this.onGetWebViewUrl(mWebView.getUrl());
}
});
}
@Override
public void onGetWebViewUrl(String url){
// call method 2 with this url
}
public interface WebViewListener {
void onGetWebViewUrl(String url);
}
}
问题内容: 我正在尝试为应用程序创建登录名。但是我有一个问题。 这是我的代码: Android studio表示必须在istructions的UI线程中调用该方法:以及 可能的解决方案? 问题答案: 尝试将您的值传递给 via 方法:
问题内容: 方法getText()必须从UI线程调用,请提供帮助。我是android studio的初学者,可以在网上找到这些代码,但无法弄清楚,我真的很感激。 问题答案: 在其UI线程而非后台线程中获取值。
这是我的kotlin代码: 但这是崩溃。 引起:java.lang.Throwable:在线程JavaBridge上调用了WebView方法。所有WebView方法必须在同一个线程上调用。 我怎样才能解决这个问题?我通过搜索找到了解决方案,但这是java代码。Kotlin和Java兼容,但由于语法错误而未运行。(我想这是因为我不知道Kotlin和Java。无论如何) 我是一个基于JavaScrip
看起来它工作得很好,但我想知道我是否必须确保新代码需要线程安全?这里有什么意见吗?抱歉用了假名字,提前致谢。
问题内容: 最近,我做了一个Netbeans项目,并且正在使用SVN。我看到重复的类错误,并且在控制台中显示 这是PieChartExplorer.java: 我努力了: 清理并重建项目 确保我在所有构造函数中都调用了super 如何解决?下载代码。 问题答案: 前几天我看到了这些症状。 我有我一直在编辑的文件,因此决定将更改分为2个提交。我进入了包含我的文件“ x / y / Z.java”的目
在执行基本方法重载程序时,我始终收到以下错误: sh-4.3 $ javac HelloWorld . Java < br > HelloWorld . Java:10:错误:方法show()已在类hello world中定义< br > static void show()< br > hello world . Java:25:错误:方法show(int,int)已在类hello world中