Я создаю приложение, в котором нажатие кнопки должно go открыть новую страницу. Я пытаюсь поставить ProgressDialog во время этого перехода. Но текущая страница (если она грязная) предлагает пользователю выбрать «Оставить / остаться на этой странице».
Когда пользователь выбирает «Оставаться на этой странице», ProgressDialog все равно остается.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView: WebView = findViewById(R.id.formView)
webView.webViewClient = MyWebViewClient()
val webSettings = webView.settings
webSettings.javaScriptEnabled = true
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY)
webView.getSettings().setBuiltInZoomControls(true)
webView.getSettings().setUseWideViewPort(true)
webView.getSettings().setLoadWithOverviewMode(true)
webView.setWebViewClient(WebViewClient())
webView.setWebChromeClient(WebChromeClient())
loadPage(webView, submitFormURL)
}
fun loadPage(webView: WebView, url: String) {
var progressDialog = ProgressDialog(this)
progressDialog!!.setMessage("Loading...")
progressDialog!!.show()
webView.setWebViewClient(object : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {
if (progressDialog!!.isShowing()) {
progressDialog!!.dismiss()
}
}
override fun onReceivedError(
view: WebView,
errorCode: Int,
description: String,
failingUrl: String
) {
Toast.makeText(this@MainActivity, "Error:$description", Toast.LENGTH_SHORT).show()
}
})
webView.loadUrl(url)
}
}
private class MyWebViewClient : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
return false
}
}