Webview не загружает внешние и ajax-запросы - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть одно приложение, которое отлично работает в WebBrowser.Это приложение делает только HTML, CSS и JS (Jquery), и весь контент загружается Ajax:

$.ajax({
    url : "url",
    dataType : "json",
    success : function(data) {
        // ...
    }
});

Я передал это приложение в Webview в Android Project (Java), но запрос Ajax и внешняя ссылка css не работает!

MainActivity.java

WebView view = (WebView) findViewById(R.id.myWeb);
view.getSettings().setJavaScriptEnabled(true);  
view.getSettings().setDomStorageEnabled(true);
view.loadUrl("file:///android_asset/index.html");

Я пытался перехватить, но тоже не работает:

view.setWebViewClient( new MyWebViewClient() );
/* ... */
public class MyWebViewCliente extends WebViewClient {
@Override
public WebResourceResponse shouldInterceptRequest(WebView webview, WebResourceRequest webrequest)
{
    Log.d("test", "shouldInterceptRequest");
    return this.handleRequest( webrequest.getUrl().toString() );
}

private WebResourceResponse handleRequest(String urlString) {
    try {
        URL url = new URL(urlString);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestProperty("User-Agent", "");
        connection.setRequestMethod("GET");
        connection.setDoInput(true);
        connection.connect();

        InputStream inputStream = connection.getInputStream();
        return new WebResourceResponse("text/json", "utf-8", inputStream);
    } catch (MalformedURLException e) {
        e.printStackTrace();
        return null;
    }
    catch (ProtocolException e) {
        e.printStackTrace();
        return null;
    }catch (IOException e) {
        e.printStackTrace();
        return null;
    }

}

Как мне решить эту проблему?

РЕДАКТИРОВАТЬ

Ошибка при выполнении с SetWebViewClient ()

W/System.err: java.lang.ClassCastException: sun.net.www.protocol.file.FileURLConnection не может быть приведен к java.net.HttpURLConnection W / System.err: в br.com.interativa.MyWebViewCliente.handleRequest (MyWebViewCliente.Java: 27) на br.com.interativa.MyWebViewCliente.shouldInterceptRequest (MyWebViewCliente.java:21)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...