如果第一个URL加载失败,如何加载第二个URL? -Android Studio WebView

问题描述 投票:0回答:2

所以这里是一些上下文。我使用MotionEyeOS为后院制作了IP摄像机,当我位于本地网络上时,可以使用摄像机的本地IP地址连接到该摄像机,还为其设置了DDNS,以便可以从Internet上的任何地方连接到它。问题是当我在本地网络上尝试连接DDNS链接时,它不起作用。因此,无论我是否在本地网络上,我都希望创建一个可以自动将我连接到相机的应用程序。

我已经在互联网上搜索了几个小时,没有发现任何可能有用的方法。

所以我的问题是我该怎么做?注意,我并不是在寻找有人为我编写代码,我只是在寻求正确方向的指导,其余的我自己解决。

提前感谢!

android uiwebview android-webview
2个回答
0
投票
我自己弄清楚了。

我使用函数onReceivedError来查看页面是否加载失败,如果是的话,我将加载第二个链接。我使用this stackoverflow问题作为参考。

这里是有效的代码:

package com-example.myapp; import androidx.appcompat.app.AppCompatActivity; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; public class MainActivity extends AppCompatActivity { String url1 = "http://192.168.1.1"; String url2 = "http://192.168.1.2"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final WebView myWebView = (WebView) findViewById(R.id.webView); myWebView.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(getApplicationContext(), "Failed loading app!", Toast.LENGTH_SHORT).show(); myWebView.loadUrl(url2); } }); myWebView.loadUrl(url1); } }


0
投票
检查您的URL无法加载onReceivedError

webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { \\ do your stuff webView.loadUrl("YOUR SECOND URL"); } @Override public void onReceivedHttpError( WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { }
});

webView.loadUrl(“您的第一个URL”);}

© www.soinside.com 2019 - 2024. All rights reserved.