gpt4 book ai didi

android - 在网站完成加载之前调用 onPageFinished 方法?

转载 作者:行者123 更新时间:2023-11-30 02:56:41 26 4
gpt4 key购买 nike

似乎我犯了一些错误,或者我遗漏了一些关于 public class myWebViewClient 类和 public void onPageFinished(WebView view, String url) 的内容。最初和开始时,我尝试启动 www.yahoo.com,在它完成加载后,我从 public void onPageFinished(WebView view, String url) 内部 toast ,作为对我加载的指示www.yahoo.com 已经完成,到这里一切都很好。在我的 RelativeLayout 中,我有一个按钮和编辑文本,我的 webview 位于它们上方。使用 edittext 的目的是使用户能够进入他们的网站,并通过单击开始按钮,应该启动输入的网站,我希望看到我在 public void onPageFinished(WebView view, String url) 在新网站完成加载后再次触发。但是发生的事情是,一旦用户在 edittext 字段中输入一个新网站,并且在他们按下 go_button 之后,toast 甚至在网站加载之前就会触发,并且在同一网站完成加载后再次触发。实际上,我希望只有在每个网站完成加载后才会触发 toast ,但我的情况并非如此。请向我提供建议,以防止发生此类问题。

Java代码:

OnClickListener btnGoListener = new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
webView00.loadUrl(etUrl.getText().toString());
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_web_page00);

webView00 = (WebView) findViewById(R.id.webView00);
btnGo = (Button) findViewById(R.id.go_btn);
etUrl = (EditText) findViewById(R.id.url_edittext);

webView00.getSettings().setJavaScriptEnabled(true);
webView00.setWebViewClient(new myWebViewClient());
webView00.setWebChromeClient(new myWebChromeClient());

btnGo.setOnClickListener(btnGoListener);
webView00.loadUrl("http://google.com");
}

public class myWebChromeClient extends WebChromeClient {

}

public class myWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Toast.makeText(getBaseContext(), "Loading Finished", Toast.LENGTH_LONG)
.show();
}
};

最佳答案

来自文档:

When onPageFinished() is called, the rendering picture may not be updated yet. 
To get the notification for the new Picture, use onNewPicture(WebView, Picture).

http://developer.android.com/reference/android/webkit/WebViewClient.html#onPageFinished(android.webkit.WebView , java.lang.String)

我建议您从 WebChromeClient 实现方法 onProgressChanged

文档:

http://developer.android.com/reference/android/webkit/WebChromeClient.html#onProgressChanged(android.webkit.WebView , 整数)

关于android - 在网站完成加载之前调用 onPageFinished 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23155432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com