gpt4 book ai didi

Android webview 页面不可用

转载 作者:行者123 更新时间:2023-11-29 18:04:52 25 4
gpt4 key购买 nike

我开发了一个小型 android webview 应用程序来访问内部(本地网络)基于 PHP 的站点。

这是我的代码:

package com.CheckInventory;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebStorage;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

@SuppressWarnings("unused")
public class CheckInventoryActivity extends Activity {
WebView webview;
String username;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
WebView webView = (WebView) findViewById(R.id.webview);
webView.setBackgroundColor(0);
webView.setBackgroundResource(R.drawable.myimage);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
WebSettings webSettings = webview.getSettings();
webSettings.setLoadWithOverviewMode(true);

webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setDatabasePath("/data/data/"+this.getPackageName()+"/databases/");
webSettings.setDomStorageEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("http://192.168.0.124/android");
webview.setWebViewClient(new HelloWebViewClient());

}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}


@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()){
//webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}

}

该网站有身份验证,但我想在应用程序和网站之间添加一些身份验证(我该怎么做?可能在调用 url 时传递参数),其次,更重要的是,我具体放在哪里onReceivedError,因此如果用户离开建筑物或连接松动,他们永远不会看到 url 或页面。

public void onReceivedError(WebView view, int errorCod,String description, String failingUrl) {
Toast.makeText(Webform.this, "Your Internet Connection May not be active Or " + description , Toast.LENGTH_LONG).show();
}

我在Detecting Webview Error and Show Message中看到了这个解释但我不知道在哪里实现。

提前致谢

最佳答案

您需要创建扩展 WebViewClient 并实现方法 OnReceivedError

的类

像这样

class myWebClient extends WebViewClient {

@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Toast.makeText(Webform.this, "Your Internet Connection May not be active Or " + description , Toast.LENGTH_LONG).show();
super.onReceivedError(view, errorCode, description, failingUrl);
}

}

然后您需要为您的 WebView 设置新的 WebViewClient

    web = (WebView) findViewById(R.id.webview);
web.setWebViewClient(new myWebClient());

希望对你有帮助

关于Android webview 页面不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944041/

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