【问题标题】:How to make my .css and .js file work with my html code loaded in a WebView on Android如何使我的 .css 和 .js 文件与我在 Android 上的 WebView 中加载的 html 代码一起工作
【发布时间】:2016-08-04 00:52:22
【问题描述】:

所以我在 html 中创建了一个简单的待办事项列表,并且与我的 .html 文件关联的 .css 和 .js 文件在浏览器中正常工作。现在我正试图让它在 web 视图中作为一个 android 应用程序工作。我正在使用 AndroidStudio 并创建了一个资产文件夹并将我的 .css 和 .js 文件添加到其中。我将所有 html 代码复制到一个字符串中,并使用 loadWithBaseURL。只有我的 html 加载到 web 视图中,没有任何样式或功能。有人能指出我正确的方向来完成这项工作吗?

package com.android.todowebview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.app.Activity;

public class MainActivity extends Activity {

    private WebView browser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        browser = (WebView) findViewById(R.id.webView1);
        browser.getSettings().setJavaScriptEnabled(true);

        String todoHtml = "<html>\n" +
                "  <head>\n" +
                "    <title>ToDoList</title>\n" +
                "    <meta http-equiv=\"Content-Type\" content=\"text/html\" charset=\"UTF-8\"/>\n" +
                "    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n" +
                "    <meta name=\"apple-mobile-web-app-cabable\" content=\"yes\"/>\n" +
                "    <link rel=\"stylesheet\" href=\"styles.css\"\n" +
                "  </head>\n" +
                "  <body>\n" +
                "    <head>\n" +
                "      <h1>\n" +
                "        ToDo-List\n" +
                "      </h1>\n" +
                "    </head>\n" +
                "    <form>\n" +
                "      <label>\n" +
                "        Title:\n" +
                "        <input id=\"newitem\" type=\"text\" placeholder=\"Tap to enter a new item&hellip;\">\n" +
                "        <br>\n" +
                "        Details:\n" +
                "        <input id=\"detail\" type=\"text\" placeholder=\"Details of new item&hellip;\">\n" +
                "        <br>\n" +
                "        Date:\n" +
                "        <input id=\"date\" type=\"date\" placeholder=\"year/month/day\">\n" +
                "        <br>\n" +
                "        Time:\n" +
                "        <input id=\"time\" type=\"time\" placeholder=\"00:00\">\n" +
                "        <br>\n" +
                "      </label>\n" +
                "      <button type=\"button\" id=\"additem\">\n" +
                "        Add\n" +
                "      </button>\n" +
                "    </form>\n" +
                "    <ul id=\"todo-list-container\">\n" +
                "    </ul>\n" +
                "    <!--\n" +
                "    <p id=\"total\">\n" +
                "      <span class=\"total1\">\n" +
                "        Total:\n" +
                "        <span id=\"totalcount\">\n" +
                "          0\n" +
                "        </span>\n" +
                "      </span>\n" +
                "      <span class=\"remain\">\n" +
                "        Remaining:\n" +
                "        <span id=\"remaining\">\n" +
                "          0\n" +
                "        </span>\n" +
                "      </span>\n" +
                "    </p>\n" +
                "    -->\n" +
                "    <fieldset>\n" +
                "      <button class=\"button deletechecked\" type=\"button\" id=\"delete-checked-items\">\n" +
                "        Delete Checked\n" +
                "      </button>\n" +
                "      <button class=\"button deleteall\" type=\"button\" id=\"delete-all-items\">\n" +
                "        Delete All\n" +
                "      </button>\n" +
                "    </fieldset>\n" +
                "\n" +
                "    <script type=\"text/template\" id=\"item-template\">\n" +
                "    <li>\n" +
                "      <label>\n" +
                "        <input type=\"checkbox\">\n" +
                "        <!-- ITEM_NAME -->\n" +
                "      </label>\n" +
                "    </li>\n" +
                "    </script>\n" +
                "    \n" +
                "    <script src=\"todo_back.js\">\n" +
                "    </script>\n" +
                "  </body>\n" +
                "</html>";

        //browser.loadData(todoHtml, "text/html", "UTF-8");
        browser.loadDataWithBaseURL("file:///android_asset", todoHtml, "text/html", "UTF-8", null);

    }
}

【问题讨论】:

    标签: javascript android html css webview


    【解决方案1】:

    出于测试目的或快速而肮脏的方法,您可以尝试将您的 css 文件内容移动到样式标记中,将 js 内容移动到脚本之一中,以避免链接/文件夹错误。

    【讨论】:

    • 好的,我做到了,一切正常。为了完成我的项目,我会坚持使用这个解决方案。谢谢!
    猜你喜欢
    • 2012-07-13
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多