【问题标题】:webview not loading particular urlwebview没有加载特定的url
【发布时间】:2018-04-16 09:56:17
【问题描述】:

这是我的URL

我正在尝试在 webview 中加载这个 url,但它没有加载。这个 URL 完全可以在 web 浏览器上运行。

仅 webview 不加载此URL

这是我的代码

webView.setWebChromeClient(new MyWebChromeClient(this));
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            if (Utils.isSameDomain(postUrl, url)) {
                Intent intent = new Intent(MainActivity.this, MainActivity.class);
                intent.putExtra("postUrl", url);
                startActivity(intent);
            } else {
                openInAppBrowser(url);
            }
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            progressBar.setVisibility(View.GONE);
        }
    });
    webView.clearCache(true);
    webView.clearHistory();
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.setHorizontalScrollBarEnabled(false);
    webView.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getPointerCount() > 1) {
                return true;
            }
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {
                    m_downX = event.getX();
                }
                break;

                case MotionEvent.ACTION_MOVE:
                case MotionEvent.ACTION_CANCEL:
                case MotionEvent.ACTION_UP: {
                    event.setLocation(m_downX, event.getY());
                }
                break;
            }
            return false;
        }
    });

任何帮助将不胜感激。

提前致谢

【问题讨论】:

  • 到目前为止你做了什么?请分享代码,你得到什么错误信息?
  • 发布你到目前为止所做的代码
  • 如果我更改我的 url,我没有收到任何错误,它工作正常,它不只加载这个 url
  • 在你的网址前使用www ?

标签: android url webview


【解决方案1】:

试试这个

public class MainActivity extends AppCompatActivity {

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

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

        webView.getSettings().setJavaScriptEnabled(true);

        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setDomStorageEnabled(true);

        webView.setWebViewClient(new WebViewController());

        webView.loadUrl("http://api.tixbag.com/test.php");


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

输出

【讨论】:

  • 不需要其他设置,只需要开启javascript即可
  • @miteshmakwana 很乐意帮助您享受编码的乐趣
【解决方案2】:

使用以下代码加载网址

public class TestingActivity extends AppCompatActivity
 {

    private WebView mWebview;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        mWebview = new WebView(this);

        mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript

        final Activity activity = this;

        mWebview.setWebViewClient(new WebViewClient() {
            @SuppressWarnings("deprecation")
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
            }

            @RequiresApi(api = Build.VERSION_CODES.M)
            @Override
            public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
                // Redirect to deprecated method, so you can use it in all SDK versions
                onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
            }
        });

        mWebview.loadUrl("http://api.tixbag.com/test.php");
        setContentView(mWebview);

    }

}

【讨论】:

    【解决方案3】:

    我只是通过在加载 url 之前启用 javascript 在我的 webView 中加载您的 http://api.tixbag.com/test.php

    示例代码:

    mWebView.getSettings().setJavaScriptEnabled(true);
    
    mWebView.loadUrl("http://api.tixbag.com/test.php");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 2020-07-14
      • 1970-01-01
      相关资源
      最近更新 更多