如何在 Web View Android 中嵌入 iframe 视频?

Posted

技术标签:

【中文标题】如何在 Web View Android 中嵌入 iframe 视频?【英文标题】:How to Embed a iframe video in Web View Android? 【发布时间】:2020-01-11 11:43:12 【问题描述】:

我想将以下视频嵌入到 android 网络视图中: https://www.espn.com.ar/core/video/iframe?id=6034792&endcard=false&omniReportSuite=wdgespg

我尝试了不同的网络视图方法,但没有任何结果。没有错误,我只能查看播放器但无法播放。

//清单:

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

<application
... 
android:hardwareAccelerated="true">

//代码:

String html = String.format("<iframe src=\"%s\" width=\"340\" height=\"313\" style=\"border:none;overflow:hidden\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\"></iframe>", url.getSrc());
wview.loadDataWithBaseURL("https://www.espn.com.ar", html, "text/html", "UTF-8", null);

//OR

wview.loadUrl(url.getSrc());

//MY WEBVIEW:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:wheel="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_>

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_alignParentTop="true">

        <WebView
            android:id="@+id/wview"
            android:layout_
            android:layout_/>
    </LinearLayout>

</RelativeLayout>

【问题讨论】:

这不是视频espn.com.ar/core/video/… 它是一个嵌入视频 【参考方案1】:

您是否添加了互联网权限

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

【讨论】:

【参考方案2】:

请检查下面的代码,它对我来说工作正常,在清单上添加 android:hardwareAccelerated="true"

WebView webview = findViewById(R.id.myweb);
        webview.setWebChromeClient(new WebChromeClient());
        webview.getSettings().setLoadsImagesAutomatically(true);
        webview.getSettings().setjavascriptEnabled(true);
        webview.getSettings().setAllowFileAccess(true);
        webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webview.getSettings().setPluginState(WebSettings.PluginState.ON);
        webview.getSettings().setMediaPlaybackRequiresUserGesture(false);
        webview.getSettings().setDomStorageEnabled(true);
        webview.getSettings().setAppCacheMaxSize(1024 * 8);
        webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        webview.requestFocus(View.FOCUS_DOWN);
        webview.getSettings().setAppCacheEnabled(true);

        webview.loadUrl("https://www.espn.com.ar");

【讨论】:

太棒了!!那行得通!我浪费了太多时间来寻找这个问题的解决方案。非常感谢:)

以上是关于如何在 Web View Android 中嵌入 iframe 视频?的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序web-view组件嵌入h5页面导致双导航栏,如何只保留其中一个?

微信小程序web-view组件嵌入h5页面导致双导航栏,如何只保留其中一个?

uniapp 为啥嵌入web-view页面空白

在 Flutter Web 中嵌入 Youtube 视频

微信小程序web-view , 嵌入H5页面

微信小程序web-view , 嵌入H5页面