可见性更改后,Webview无法加载视频

时间:2018-06-17 11:57:02

标签: android android-webview

我面临一个奇怪的问题。

每当我使用的网页浏览器未显示在屏幕上时,在下次屏幕上显示时会出现加载新网址的问题。

我测试了什么 -

  1. 如果没有可见性更改,当我调用loadUrl方法时,webview可以一个接一个地加载多个网址。

  2. 如果它在任何时候都被隐藏了,要么是因为我将其可见性设置为GONE,要么是另一个视图出现在它之上,那么它在恢复可见之后就不会加载。

  3. 一个有趣的事情是,URL正在加载(它有一个嵌入代码播放视频),因为我可以听到新视频的声音,但视觉效果卡住了,显示了最后一个加载的URL的视觉效果。

    我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:0)

还是不知道为什么会这样。每次我需要时都会膨胀一个新的Webview实例(并销毁旧的实例)。这不是一个非常频繁的操作(需要在5秒钟一次到2小时一次这样的大范围频率范围内进行操作),因此可以忽略性能问题。

不是解决方案,但对我有用。

答案 1 :(得分:0)

我不确定您想如何发挥可见性,但我认为在实现以下代码后您将能够解决您的问题:

    webView = findViewById(R.id.webview);

    webView.setWebViewClient(new WebViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
    webView.setWebChromeClient(new WebChromeClient());
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.loadUrl("https://www.w3schools.com/tags/movie.mp4");//video url

    //checking the webview functionality after hiding and showing webview
    webView.setVisibility(View.GONE);
    webView.setVisibility(View.VISIBLE);

注意:不要忘记在应用程序的manifest.xaml中添加Internet权限

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