Android中WebView的权限

3
我是这个社区的新成员,希望你能帮助我。我正在尝试创建一个包含 WebRTC 的 WebView 应用程序。我想请求应用程序中的 web 权限,但我不知道如何做。也许问题不在这里。无论如何,当我运行应用程序时,我看到了这个:

我想让这个“播放”图像消失:

并显示这个原始网页:

谢谢。


那个图像很可能意味着您在Webview中打开的网页的HTML上有一个<video>标签。如果您的Webview加载外部URL(来自互联网),则只需要互联网权限,否则不需要任何权限。 - Mehdi
好的。您能向我解释一下如何删除或隐藏<video>标记吗? - Bogdan Iacob
请看我的回答,我尽量详细地阐述了。 - Mehdi
2个回答

5

如果您的Webview不加载外部页面(来自互联网),则无需任何权限,否则您只需要Internet权限:

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

这张图片意味着你的HTML页面上可能有一个<video>标签,它占据了整个屏幕(高度-宽度),并且默认情况下被声明为自动播放视频。但是在安卓系统中,自动播放视频被阻止了。
例如:
<video controls autoplay>
    <source src="movie.mp4" type="video/mp4">
</video>

所以,

1- 确保您使用了WebChromeClient

2- 这是一个初始化您的webview的方法:

@SuppressLint ("SetJavaScriptEnabled")
private void initWebview () {
    webview = findViewById (R.id.my_webview);

    webView.setWebChromeClient (new WebChromeClient () {

        @Override
        public boolean onConsoleMessage (ConsoleMessage consoleMessage) {
            Log.e ("WebView - Logger", consoleMessage.messageLevel () + " : " + consoleMessage.lineNumber () + " : " + consoleMessage.message ());
            return true;
        }
    });

    WebSettings webSettings = webView.getSettings ();
    webSettings.setJavaScriptEnabled (true);
    webSettings.setUseWideViewPort (true);
    webSettings.setLoadWithOverviewMode (true);
    webSettings.setCacheMode (WebSettings.LOAD_NO_CACHE);
}

3-

  • 如果您想允许页面中的任何HTML视频自动播放(可能是您的情况),而不显示那个大的“播放”图像,请在initWebview方法中添加以下代码:webSettings.setMediaPlaybackRequiresUserGesture(false);

  • 如果您不想允许自动播放,请从HTML页面中的<video>标签中删除autoplay属性。


0
你不需要任何特殊权限来显示 WebView。你只需要 internet 权限,来加载那个网页。如需查询,请参考this post

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接