gpt4 book ai didi

android - 打开互联网后重新加载 WebView

转载 作者:行者123 更新时间:2023-11-29 20:57:03 25 4
gpt4 key购买 nike

我正在尝试将 url 加载到 webview 中。如果有互联网连接,它应该加载到 webview。否则,应显示重试屏幕。在重试屏幕中,我有一个重试按钮。如果我们点击它,应该再次加载 url。但是使用我完成的代码,当我尝试通过单击“重试”按钮重新加载 url 时,应用程序一直崩溃(即使在我打开网络后或者它仍然关闭时)。这是我的代码

    tryAgainButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tryAgainLayout.setVisibility(View.GONE);
browser = (WebView)findViewById(R.id.webView1);
open(browser);
}
});



private void open(View view){
browser.getSettings().setLoadsImagesAutomatically(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setAppCacheEnabled(true);
browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
browser.getSettings().setSupportMultipleWindows(true);
browser.setWebViewClient(new MyBrowser());
browser.setWebChromeClient(new MyCustomChromeClient());
mContext=this.getApplicationContext();
browser.loadUrl(target_url);
MainActivity.this.progressBar.setProgress(0);
browser.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
}
});
}

如何在点击重试按钮时重新加载页面。

最佳答案

这里有一些假设,因为没有 logcat:

  1. 应用程序崩溃是因为您尝试通过在错误的布局/ View 中搜索来获取浏览器 View 。
  2. 如果你只是想重新加载,最好只做一个browser.reload() int he click listener

编辑 简单的解决方案:创建一个监听器类并将 webView 作为参数传递给构造函数,以便它知道要重新加载什么。

class WebViewReloader implements View.OnClickListener{
private WebView browser = null;

public WebViewReloader(WebView target){
browser = target;
}

@Override
public void onClick(View view) {
tryAgainLayout.setVisibility(View.GONE);
browser.reload();
}
}

然后

tryAgainButton.setOnClickListener(new WebViewReloader(browser));

其他解决方案:使用对 WebView 的静态引用,或通过在其父布局中搜索来检索 WebView。

关于android - 打开互联网后重新加载 WebView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27332426/

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