我不确定我的想法是否可行,但为什么是现在。
我有一个MVC4母版页,如下所示
<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页面是在远程服务器上编译的,这是可能的吗?
发布于 2014-12-08 19:21:35
好了,对你问题的评论基本上总结了这一点。您需要将js/css代码添加到您的资产文件中。
如果您需要一个示例,可以查看这个示例项目(我只加载js代码,但它的原理与css相同) here
复习一下大体概念:
wv.setWebViewClient(webViewClient); onPageFinished()方法并在字符串(src) view.loadUrl("javascript: " + src); 中加载javascript代码
就这样。它应该工作得很好
在示例中,我加载了一个脚本,该脚本将调整所有表格和图像的大小以适应webview (android的常见要求)。还有一些随意的链接验证代码(用来识别和标记链接)。我不会使用js代码,因为它有一点but,但它是一个很好的原则的例子。
发布于 2014-12-08 19:23:56
将所有Css和JS放在assets文件夹中。
并尝试使用以下命令加载web视图:
webView.loadDataWithBaseURL("file:///android_asset/", <HTMLDATA> ,"text/html", "UTF-8", null);https://stackoverflow.com/questions/27356447
复制相似问题