如何在 Android webview 中居中我的 HTML iframe?

Posted

技术标签:

【中文标题】如何在 Android webview 中居中我的 HTML iframe?【英文标题】:How I center my HTML iframe in Android webivew? 【发布时间】:2022-01-08 04:12:15 【问题描述】:

我的 android webview 中有一个 iframe,我正在像这样加载:

     String folderPath = "file:android_asset/";
     String fileName = "index.html";
     String file = folderPath + fileName;
     webView.loadUrl(file);

iframe 是通过位于我的android/assests 文件夹中的 HTML 和 CSS 文件加载的。 HTML 和 CSS 看起来像这样。 HTML:

<!DOCTYPE html>
<html lang="en">
<body>
<link rel="stylesheet" type="text/css" href="default.css"  />
    <div class="abs-frame-container">
    <iframe 
      id="my_frame"
      src="my web page link"
      scrolling="no"
      allowtransparency="true" 
      style="border:none;overflow:hidden">
    </iframe>
    </div>
</body>
</html>

和我的 CSS

#my_frame 
  position: absolute;
  top: 0%;
  bottom: 0%;
  right: 0%;
  width: 117%;
  height: 100%;


#abs-frame-container
    top: 10%;
    bottom: 0%;
    position: relative;

iframe 中的网页在 webview 中显示良好。我想在 webview 中居中(垂直对齐)我的 iframe,以便它根据 webview 尺寸(高度)自动对齐。如果有人可以帮助我如何实现这一点,将不胜感激?

【问题讨论】:

【参考方案1】:

您可以直接从 Java/Kotlin 调用 WebView 上的自定义 javascript。在the official documentation中有解释。

然后您可以将JavaScript script that adds CSS styles 设置为已加载的html 页面的一部分,并以此方式将您的iframe 居中。

【讨论】:

感谢您的建议。所以我已经拥有的 CSS 文件不足以解决问题? 没有直接的方法可以从 android 代码中应用 css 文件。但是,如果您已经拥有所需的 css,那么将其“翻译”为 javascript 应该不难。我在答案中附上了一个链接,并附有一些示例。

以上是关于如何在 Android webview 中居中我的 HTML iframe?的主要内容,如果未能解决你的问题,请参考以下文章

如何在引导程序中居中我的文本? [复制]

在页面中居中我的引导表单

Angular Material Icon 不在带有 Cordova 的 Android 应用程序中居中

如何在工具栏中居中ImageView?

如何使用android在webview中播放视频?

JavaScript 警报在 Android WebView 中不起作用