我在这里看了一个类似的问题,但是因为我是一个新手,有人可以解释如何让它在WebView中工作,或至少如何设置10秒的时间延迟让人们知道它正在加载?
在我的应用程序中,我有一个WebView
从Internet加载任何URL.现在,有时由于网络速度慢,页面需要很长时间才能加载,用户只能看到一个空白屏幕.
我想显示ProgressBar
的同时WebView
被加载和隐藏ProgessBar
当WebView
被完全加载.
我知道如何使用ProgressBar
和AsyncTask
s,但这是我的问题.
这是我用来加载我的代码WebView
.
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.loadUrl(web_URL);
Run Code Online (Sandbox Code Playgroud)
这是我的自定义WebViewClient
课程
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试显示ProgressBar
使用AsyncTask
s然后我想我必须给代码加载doInBackGround()
我的函数中的URL AsyncTask
并通过该onProgressUpdate()
函数显示进度.
但是,如何在doInBackground()中加载URL,因为doInBackground()在非UI线程上运行,我无法在其中使用mWebView.loadUrl(web_URL)
.
有什么建议?我错过了一些明显的东西吗 请指导我.
android android-webview android-progressbar android-asynctask
我为我的企业家开发了一个网站,我几乎只使用 PHP
所以 Java 语言(和 android studio)对我来说真的是新的
尽管如此,我必须创建一个 APK 才能使用该网站(为了阻止该网站上的 android home)
目前我设法设置了刷新页面,现在我正在尝试向使用 WebView 的应用程序添加进度/加载栏,但它不起作用..
主活动.java
import android.support.v4.widget.SwipeRefreshLayout;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
WebView webView;
SwipeRefreshLayout swipe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
webView.reload();
}
});
LoadWeb();
}
public void LoadWeb(){
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.loadUrl("https://www.google.com/");
swipe.setRefreshing(true);
webView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, …
Run Code Online (Sandbox Code Playgroud)