- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序包含一个主 Activity ,该 Activity 通过选择 3 个按钮中的 1 个来引导第二个 Activity ,所有这些按钮都会引导至不同的 Web View 。 WebView 仅加载简单的 HTML 页面,其中包含照片和一些文本。
我希望我的用户加载页面 1 次,然后缓存该页面。为此,我使用了 web.setCacheMode(LOAD_CACHE_ELSE_NETWORK)
。一切都很好,花花公子,但这是问题所在。我在操作栏中使用刷新按钮。只需调用 web.reload()
或 web.loadUrl("MyURL")
但是,当我使用上述缓存模式时,刷新按钮不起作用,它只是加载缓存页面。因此,当我使用新照片或文本更新我的 HTML 页面时,它不会被加载。但是当我使用 web.setcacheMode(LOAD_DEFAULT)
时,它不会被缓存,但刷新按钮有效。我确定我需要连接互联网才能让缓存工作......这很奇怪......
下面是我在 webview 中使用的代码。
public class AGF_R1 extends ActionBarActivity {
WebView web;
private int getScale(){
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
Double val = new Double(width)/new Double(1200);
val = val * 100d;
return val.intValue();
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater mif = getMenuInflater();
mif.inflate(R.menu.menu_agf__r1, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//regelt de onClick
switch (item.getItemId()) {
case R.id.herlaad:
web.reload();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.KnapperDev.knapper.jrw.R.layout.activity_agf__r1);
web = (WebView) findViewById(com.KnapperDev.knapper.jrw.R.id.AGF_WebView1);
web.setInitialScale(getScale());
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setLoadsImagesAutomatically(true);
web.loadUrl("http://77.161.45.179/AGF/AGF_R1.html");
web.getSettings().setAppCacheEnabled(true);
web.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
web.setWebViewClient(new AGF_WebClient());
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
int week = cal.get(Calendar.WEEK_OF_YEAR);
int w1 = week;
int w2 = week + 1;
int w3 = week + 2;
String rst = "Rooster week: ";
getSupportActionBar().setTitle(rst + w1);
}
public class AGF_WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()){
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
最佳答案
您可以尝试使用刷新按钮刷新缓存,而不是刷新网页吗?
不可否认,有点蛮力解决方案......
引用:http://developer.android.com/reference/android/webkit/WebView.html#clearCache%28boolean%29
关于android - 离线时从缓存中加载 webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736681/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!