T
tefracky
App-Anbieter (kostenlos)
- 184
Hallo,
ich habe eine Webview App erstellt, mit der es ebenfalls möglich sein soll, die Webseite offline aufzurufen.
Dies würde ich insofern realisieren, als dass die Webseite im Cache gespeichert wird und dieser wieder aufgerufen wird, wenn keine Internetverbindung besteht. Allerdings ist es so, dass genau gar keine Datei in den Cache geladen wird. Ich habe testhalter den Pfad auf die interne SD Karte gelegt, um zu sehen, ob und welche Dateien gespeichert werden. Der Ordner wird zwar erstellt, aber eben keine Datei rein geschrieben. Damit kann auch keine Webseite offline aufgerufen werden.
Hier der Code, den ich verwende:
ich habe eine Webview App erstellt, mit der es ebenfalls möglich sein soll, die Webseite offline aufzurufen.
Dies würde ich insofern realisieren, als dass die Webseite im Cache gespeichert wird und dieser wieder aufgerufen wird, wenn keine Internetverbindung besteht. Allerdings ist es so, dass genau gar keine Datei in den Cache geladen wird. Ich habe testhalter den Pfad auf die interne SD Karte gelegt, um zu sehen, ob und welche Dateien gespeichert werden. Der Ordner wird zwar erstellt, aber eben keine Datei rein geschrieben. Damit kann auch keine Webseite offline aufgerufen werden.
Hier der Code, den ich verwende:
Code:
public WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Self handle links
mWebView = (WebView) findViewById(R.id.activity_main_webview);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("http://")) {
return false;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
});
// Enable Javascript
mWebView.getSettings().setJavaScriptEnabled(true);
// Caching
String fileDir = getApplicationContext().getExternalFilesDir(null).getAbsolutePath();
String cacheDir = fileDir + "/OfflineData";
new File(fileDir, "/OfflineData").mkdir();
WebSettings webviewSettings = mWebView.getSettings();
webviewSettings.setDomStorageEnabled(true);
webviewSettings.setAppCacheMaxSize(1024*1024*8);
webviewSettings.setAppCachePath(fileDir);
webviewSettings.setAllowFileAccess(true);
webviewSettings.setAppCacheEnabled(true);
webviewSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
// Offline Support
/* if ( isNetworkAvailable() ) {
webviewSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
} else {
webviewSettings.setCacheMode(WebSettings.LOAD_CACHE_ONLY);
} */
// mWebView.loadUrl("http://www.tsg-wieseck.de?key=MTYyNDY2ODkxODU");
mWebView.loadUrl("http://www.webseite");
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(getApplicationContext().CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
super.onBackPressed();
}
}