WebView не отображает изображения и воспроизводит js - PullRequest
0 голосов
/ 26 февраля 2019

Я получил простейшую работу на Upwork, но был fckd

Есть сайт , и мне просто нужно обернуть его с моим приложением, но верхние кнопки не работают (jsпроблема), и изображения пустые, мой браузер Chrome Android делает это хорошо.Я безумно гуглил, но решение не было найдено.Теперь работа не моя, но я все еще хочу понять, что не так.

вот мой код:

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    setTheme(R.style.AppTheme)
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    webView.settings.apply {
        javaScriptEnabled = true
    }

    webView.loadUrl("http://onlinegamesreview.online/")
}

Я перепробовал много вещей, которые нашел, и будет лучшеесли вы покажете мне реально работающий код, а не инструкции

мой скриншот

спасибо

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Сначала я добавил Интернет-разрешение в манифесте:

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

и следующий код:

public class MainActivity extends AppCompatActivity {

    WebView webView;
    ProgressDialog progressDialog;

    private static final String TERMS_AND_CONDITIONS_URL = "http://onlinegamesreview.online/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressDialog = new ProgressDialog(this);

        recyclerView = findViewById(R.id.recyclerView);
        webView = findViewById(R.id.webView);
        webView.setWebViewClient(new MyBrowser());
        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.loadUrl(TERMS_AND_CONDITIONS_URL);
    }

    private class MyBrowser extends WebViewClient {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            progressDialog.setMessage("loading...");
            progressDialog.setCancelable(false);
            showDialog();
        }

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

            view.loadUrl(TERMS_AND_CONDITIONS_URL);
            return true;
        }

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

    private void hideDialog() {

        if (progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
    }

    private void showDialog() {

        if (!progressDialog.isShowing()) {
            progressDialog.show();
        }
    }
}

Obtained Output

0 голосов
/ 26 февраля 2019

Попробуйте это для изображений

    webView.getSettings().setLoadsImagesAutomatically(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    webView.getSettings().setAppCacheEnabled(true);

Для Js

    WebSettings webSettings=webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.setWebChromeClient(new WebChromeClient());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...