Android WebView 加载所有的 url 但不仅仅是我的

Android WebView Loads all the urls but not only mine

我试图在 android 网络视图中加载我的网站,每当我将 url 设置为 google.com 或任何其他它加载时没有任何问题但是当我尝试加载我的站点 darpankulkarni.in 然后它只显示空白屏幕。

WebViewActivity:

public class WebViewActivity extends Activity {

private WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_webview);

    webView = (WebView) findViewById(R.id.webView);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN)
    {

        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setAllowContentAccess(true);
        webView.getSettings().setAllowFileAccessFromFileURLs(true);
        webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

    }

    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://www.darpankulkarni.in");
    //webView.loadUrl("http://www.google.com");
    webView.setWebViewClient(new MyWebViewClient());
}
}

MyWebViewClient:

class MyWebViewClient extends WebViewClient {
@Override

// show the web page in webview but not in web browser
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
}

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    //webProg.setVisibility(View.GONE);
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
    super.onPageStarted(view, url, favicon);
}

@Override
public void onLoadResource(WebView view, String url) {
    super.onLoadResource(view, url);
}

}

通过将设置下方的代码添加到 onCreate

内的 Web 视图来修复它
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN)
{

    websettings.setAllowFileAccess(true);
    websettings.setAllowContentAccess(true);
    websettings.setAllowFileAccessFromFileURLs(true);
    websettings.setAllowUniversalAccessFromFileURLs(true);

}

将基本设置应用于您的 Web 视图以在视口中加载 Web 视图

    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true); 

所以这是完整的工作代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mWebView=(WebView)findViewById(R.id.webView1);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN)
    {
        mWebView.getSettings().setAllowFileAccess(true);
        mWebView.getSettings().setAllowContentAccess(true);
        mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
        mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    }

    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);

ProgressDialog  progressDialog = new ProgressDialog(MainActivity.this);

    mWebView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url)    {              
            view.loadUrl(url);
            return true;
        }
        public void onLoadResource (WebView view, String url) {

            progressDialog.setMessage("Loading the Web View");
            progressDialog.show();

        }
        public void onPageFinished(WebView view, String url) {
            if (progressDialog.isShowing()) {
                progressDialog.dismiss();
            }
        }
    }); 

    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.darpankulkarni.in");
    //  mWebView.loadUrl("http://www.google.com");
    //  mWebView.setWebViewClient(new MyWebViewClient());

}

不要忘记在您的清单中授予互联网权限

   <uses-permission android:name="android.permission.INTERNET" />

我创建了一个用于加载 Web 视图的进度对话框,因为它需要一些时间来加载。

希望这篇文章能帮到你!!