首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Css/JQuery文件应用于Android WebView中的外部页面

如何将Css/JQuery文件应用于Android WebView中的外部页面
EN

Stack Overflow用户
提问于 2014-12-08 18:57:00
回答 2查看 512关注 0票数 0

我不确定我的想法是否可行,但为什么是现在。

我有一个MVC4母版页,如下所示

代码语言:javascript
复制
<head runat="server">
    <meta charset="utf-8" />
    <title>RYTE HCMS</title>
    <meta name="viewport" content="width=device-width" />
    <link href="<%: Url.Content("~/favicon.ico") %>" rel="shortcut icon" type="image/x-icon" />
    <link rel="stylesheet" href="~/Content/jquery/jquery.mobile.theme-1.4.3.min.css" />
    <link rel="stylesheet" href="~/Content/jquery/jquery.mobile.icons.min.css" />
    <link href="~/Content/jquery-ui.datepicker.min.css" rel="stylesheet" />
    <link href="~/Content/jquery.mobile.structure-1.4.5.min.css" rel="stylesheet" />
    <%: Scripts.Render("~/bundles/modernizr") %>
    <style type="text/css">
        .wrap {
            white-space: normal !important;
        }
    </style>
</head>
<body>
    <div data-role="page" data-theme="a" data-url="master-page" id="master-page">
        <div data-role="header" data-position="fixed">
            <asp:ContentPlaceHolder ID="Header" runat="server">
                <a href="#leftpanel" data-panelid="leftpanel" data-icon="bars" data-role="link" style="height: 17px"></a>
                <h1>
                    <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
                </h1>
                <% Html.RenderPartial("LoginUserControl"); %>
            </asp:ContentPlaceHolder>
        </div>
        <div data-role="content">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" />
        </div>
    </div>
    <script src="<%=Url.Content("~/Scripts/jquery-1.11.1.min.js")%>"></script>
    <script>
        $(document).on("mobileinit", function () {
            $.mobile.ajaxEnabled = false;
        });
    </script>
    <script src="<%=Url.Content("~/Scripts/jquery.mobile-1.4.5.min.js")%>"></script>
    <script type="text/javascript">
        $(document).on("pageinit", "#master-page", function () {
            $(document).on("swipeleft swiperight", "#master-page", function (e) {
                // We check if there is no open panel on the page because otherwise
                // a swipe to close the left panel would also open the right panel (and v.v.).
                // We do this by checking the data that the framework stores on the page element (panel: open).
                if ($.mobile.activePage.jqmData("panel") !== "open") {
                    if (e.type === "swipeleft") {
                        $("#right-panel").panel("open");
                    } else if (e.type === "swiperight") {
                        $("#leftpanel").panel("open");
                    }
                }
            });
        });
    </script>
    <asp:ContentPlaceHolder ID="ScriptsSection" runat="server" />
</body>

我想在Android WebView中加载并应用CSS/JQuery。我想保留android移动应用程序中的文件,并在webView中加载页面时应用它们。

如果我没有按照特定的顺序加载这些文件,设计就会崩溃。我想这样做的原因是为了确保用户不会觉得这是一个web应用程序。目前,在每次刷新/重新加载时,jquery mobile和css加载大约需要1-2秒。

由于MVC4页面是在远程服务器上编译的,这是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-08 19:21:35

好了,对你问题的评论基本上总结了这一点。您需要将js/css代码添加到您的资产文件中。

如果您需要一个示例,可以查看这个示例项目(我只加载js代码,但它的原理与css相同) here

复习一下大体概念:

  • 使您的use视图使用自定义的WebViewClient (在本例中称为MailWebViewClient )。您不需要在webview客户端中使用自定义webview (如示例所示) wv.setWebViewClient(webViewClient);
  • ,请覆盖onPageFinished()方法并在字符串(src) view.loadUrl("javascript: " + src);

中加载javascript代码

就这样。它应该工作得很好

在示例中,我加载了一个脚本,该脚本将调整所有表格和图像的大小以适应webview (android的常见要求)。还有一些随意的链接验证代码(用来识别和标记链接)。我不会使用js代码,因为它有一点but,但它是一个很好的原则的例子。

票数 0
EN

Stack Overflow用户

发布于 2014-12-08 19:23:56

将所有Css和JS放在assets文件夹中。

并尝试使用以下命令加载web视图:

代码语言:javascript
复制
webView.loadDataWithBaseURL("file:///android_asset/", <HTMLDATA> ,"text/html", "UTF-8", null);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27356447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档