【问题标题】:How to create/update/load a HTML file at runtime如何在运行时创建/更新/加载 HTML 文件
【发布时间】:2013-08-27 07:02:16
【问题描述】:

我需要在运行时创建并打开一个 HTML 文件。

    <html>
      <body>
        <form name="Home" method="POST" action='' >
          <input id='Title' type='hidden' value="Mr" name='Title'/>
          <input id='Name' type='hidden' value="bala" name='Name'/>
           .
           .
           .
         </form>
         <script language='javascript'>
            //java script
         </script>
      </body>
    </html>

在上述格式中,我需要在运行时更新value 字段。更新后,我想在我的 android 应用程序中打开这个 html 文件。

更新: 我知道我们可以像下面这样创建 HTML 文件..

public static String createHTML(Study study) {
    String format =
            "<html>" +
            "<body>" +
            "<form name="Home" method="POST" action='' >" +
            "<input id='Title' type='hidden' value='%d' name='Title'/>" +
            .
            .
            .
            .
            "   </body>" +
            "</html>";
    return String.format(format, study.title, study.name...);
}

但我想知道是否有任何其他方法可以创建 HTML 文件,例如使用 XmlSerializer 创建 XML 文件 谢谢!

【问题讨论】:

  • 你不能“运行”一个 HTML 文件。
  • 问题已更新@Rajesh ok..如何在我的应用程序中更新/打开.. 使用 webview ??
  • 是的。查看WebView 文档。
  • @Rajesh 如何创建 html 文件。我需要创建一个上述格式的文件(50 到 60 行)。

标签: java android html android-webview


【解决方案1】:

如何创建 html 文件。

  1. 打开文件
  2. 编写构成 HTML 的文本字符
  3. 关闭文件

如果您需要更多详细信息,Oracle Java 教程包含有关基本 Java 结构以及如何进行简单文件 I/O 的课程。


还有其他更“优雅”的方式可以在不同的上下文中(例如在 Web 服务中)做这种事情,但如果这是您需要做的总和,那么......保持简单。


... 有没有其他方法可以创建 HTML 文件,例如使用 XmlSerializer 创建 XML 文件。

不是 HTML。您可以通过这种方式创建 XHTML。

话虽如此,以这种方式构建 HTML 或 XHTML 听起来是个糟糕的主意。与字符串连接或基于模板的方法相比,生成的代码既不可读也不高效。

(试试看……)

【讨论】:

  • 是否可以使用 XmlSerializer XmlSerializer XmlSerializer = Xml. newSerializer (); StringWriter writer = new StringWriter(); xmlSerializer.setOutput(writer); // start DOCUMENT xmlSerializer.startDocument("UTF-8", true); // open tag: &lt;record&gt; xmlSerializer.startTag("", Study.RECORD); // open tag: &lt;study&gt; xmlSerializer.startTag("", Study.STUDY); xmlSerializer.attribute("", Study.ID, String.valueOf(study.mId)); 创建像 xml 文件一样的 html 文件
  • 嗨斯蒂芬..作为你的建议,我最终以this 解决方案结束。这是好方法吗?
【解决方案2】:

在 Android 中确实有比手动字符串连接更好的方法来生成 HTML 页面。有一些精巧的 Java 库可以为您完成(回想一下,您可以很容易地在 Android 项目中使用常规 Java 库)。

【讨论】:

    【解决方案3】:

    如果您想运行 html 文件运行时,请尝试使用此代码。

     webview_data.loadDataWithBaseURL("file:///android_asset/", htmlString,"text/html", "UTF-8",null);
    

    并确定是否要使用任何 css 或 javascript 文件,然后将其放入 android assest 文件夹中..

    【讨论】:

      【解决方案4】:
      1. 创建 MyHtml 文件

        MyHtml.html

        <html>
          <body>
            <form name="Home" method="POST" action='' >
            <input id='Name' type='hidden' value="MyName" name='Name'/>
            <input id='FirstName' type='hidden' value="MyFName" name='FirstName'/>          
               .
               .
               .
             </form>
             <script language='javascript'>
                //java script
             </script>
          </body>
        </html>
        
      2. 作为 MyHtml.html 存储在 Assets 文件夹中

      3. 在我的应用程序中读取并更新此文件,如下所示

        InputStream is = getAssets().open("MyHtml.html");
            int size = is.available();
        
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
        
            String str = new String(buffer);
            str = str.replace("MyName", "James Bala");
            str = str.replace("MyFName", "James");
            .
            .
            .
        
      4. 然后我在 webView 中加载了我的 html 文件,如下所示

        myWebView.loadData(str, "text/html; charset=utf-8", "UTF-8");
        

      根据斯蒂芬的建议,我最终以这个解决方案结束。谢谢@斯蒂芬

      【讨论】:

        猜你喜欢
        • 2019-12-19
        • 2013-04-20
        • 2019-08-16
        • 2021-07-10
        • 1970-01-01
        • 2015-02-26
        • 1970-01-01
        • 1970-01-01
        • 2018-08-31
        相关资源
        最近更新 更多