首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果第一个URL加载失败,如何加载第二个URL?- Android Studio WebView

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

Stack Overflow用户
提问于 2020-04-06 21:36:08
回答 2查看 146关注 0票数 0

因此,这里有一些上下文。我用MotionEyeOS为我的后院制作了IP摄像机,当我在我的本地网络上时,我可以使用摄像机的本地IP地址连接到它,我还为它设置了DDNS,这样我就可以从互联网上的任何地方连接到它。问题是当我在我的本地网络上尝试连接我的DDNS链接时-它不工作。因此,我想做一个应用程序,无论我是否在我的本地网络上,都可以自动连接到摄像头。

我已经在网上搜索了几个小时,没有找到任何有用的东西。

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

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-07 17:19:18

我自己想出来的。

我使用函数onReceivedError查看页面是否加载失败,如果是,我将只加载第二个链接。我使用了this堆栈溢出问题作为参考。

以下是工作的代码:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2020-04-07 19:29:22

检查您的网址未能通过onReceivedError加载

代码语言:javascript
复制
    WebView webView;

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("YOUR FIRST URL");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61061118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档