因此,这里有一些上下文。我用MotionEyeOS为我的后院制作了IP摄像机,当我在我的本地网络上时,我可以使用摄像机的本地IP地址连接到它,我还为它设置了DDNS,这样我就可以从互联网上的任何地方连接到它。问题是当我在我的本地网络上尝试连接我的DDNS链接时-它不工作。因此,我想做一个应用程序,无论我是否在我的本地网络上,都可以自动连接到摄像头。
我已经在网上搜索了几个小时,没有找到任何有用的东西。
所以我的问题是我该怎么做?注意,我不是在找人为我写代码,我只是在寻求正确方向的指导,其余的我会自己解决的。
提前感谢!
发布于 2020-04-07 17:19:18
我自己想出来的。
我使用函数onReceivedError查看页面是否加载失败,如果是,我将只加载第二个链接。我使用了this堆栈溢出问题作为参考。
以下是工作的代码:
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);
}
}发布于 2020-04-07 19:29:22
检查您的网址未能通过onReceivedError加载
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");https://stackoverflow.com/questions/61061118
复制相似问题