【发布时间】:2017-12-09 21:49:28
【问题描述】:
我一直在寻找几个小时的解决方案;虽然有类似的情况,但我认为有点不同。 我有一个要加载到 webview 中的网站
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(webview);
myWebView.loadUrl("http://my-website.com/index.php");
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.toString());
return true;
}
}); }
网站加载正常。没有问题。我正在尝试做的是(因为有很多 CSS 和 JS 文件)是从 Android 应用程序的资产文件夹中加载这些文件 - 我正在尝试加快页面加载速度。
<link href="file:///android_asset/css/keyframes.css" rel="stylesheet" type="text/css">
<link href="file:///android_asset/css/materialize.min.css" rel="stylesheet" type="text/css">
<link href="file:///android_asset/css/swiper.css" rel="stylesheet" type="text/css">
<link href="file:///android_asset/css/swipebox.min.css" rel="stylesheet" type="text/css">
<link href="file:///android_asset/css/style.css" rel="stylesheet" type="text/css">
它目前没有加载我以这种方式调用的任何 CSS 文件。 我真的不想用一个简单的问题来纠缠任何人,它只是一直困扰着我,而且我对 Java 并不擅长。 此外,这不是本地 HTML 页面。这是一个从远程服务器加载的 PHP 页面。
【问题讨论】:
-
如果您暂时将 HTML 的副本放在
assets/中并从那里将其加载到WebView中,是否有效? -
"file:///。不应该是"file://吗? -
试过了。我遇到了同样的问题。没有文件被加载。 @greenapps
-
资产中有
css文件夹? -
如果你想要真正的性能,缓存输出并将输出放置在请求的确切位置。通过在不存在的文件上重写 index.php,编译完成一次,然后将输出写入例如/assets/asdugh3e9adHASH.css ( /assets/asdugh3e9adHASH.css > index.php?path=$1) 唯一标识符必须通过收集文件修改时间/文件名和散列来确定。这样一来,PHP 甚至不会在加载现有资产集时执行。