WebView不显示图像并播放js

时间:2019-02-26 12:03:34

标签: android webview

我在Upwork上获得了最简单的工作,但是很奇怪

有一个site,我只需要用我的应用程序包装它,但是顶部按钮不起作用(js问题),并且图像为空,我的chrome安卓浏览器可以很好地做到这一点。我当时发疯了,但没有找到解决方法。现在的工作不是我的,但我仍然想了解出什么问题了。

这是我的代码:

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/")
}

我尝试了很多发现的事情,如果您向我展示真实的工作代码而不是说明,那就更好了

my screenshot

谢谢

2 个答案:

答案 0 :(得分:0)

  

尝试使用这些图片

    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());

答案 1 :(得分:0)

首先,我在清单中添加了Internet权限:

<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