Ben bir WebView yüklemek istiyorum o (css dosyaları ve Javascript kütüphaneleri) işaret diğer bazı kaynakları ile birlikte yerel bir html sayfası var. Bu nasıl başarılabilir?
Belki de tedarik etmenin en iyi yolu değil ama hala deniyorum.
Ben bir WebView yüklemek istiyorum o (css dosyaları ve Javascript kütüphaneleri) işaret diğer bazı kaynakları ile birlikte yerel bir html sayfası var. Bu nasıl başarılabilir?
Belki de tedarik etmenin en iyi yolu değil ama hala deniyorum.
Yanıtlar:
En kolay yol büyük olasılıkla web kaynaklarınızı varlıklar klasörüne koymak ve ara :
webView.loadUrl("file:///android_asset/filename.html");
Java ve Webview arasında Tam İletişim için Buna Bakın
Güncelleme: Varlıklar klasörü genellikle aşağıdaki klasördür:
<project>/src/main/assets
Bu, <app>.iml
dosyanızdaki varlık klasörü yapılandırma ayarında şu şekilde değiştirilebilir :
<option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets” />
Android Studio'da öğeler klasörünün nereye yerleştirileceği
makalesine bakın.
AndroidManifest.xml
yansıtacak şekilde güncellemezseniz , başka bir öğe veya beklenen dosya eksikse geçerlidir . (Şahsen, URL / dosya yolunu dize kaynaklarına koymanızı ve oraya yolun programın diğer tüm dize verileriyle olmasını sağlayacak şekilde erişmenizi öneririm, ancak bu öğe / kaynak bağımlılığı.)
muhtemelen bu örnek yardımcı olabilir:
WebView lWebView = (WebView)findViewById(R.id.webView);
File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
lWebView.loadUrl("file:///" + lFile.getAbsolutePath());
Bu durumda, kullanmak WebView#loadDataWithBaseUrl()
daha iyidir WebView#loadUrl()
!
webView.loadDataWithBaseURL(url,
data,
"text/html",
"utf-8",
null);
url: url / path Tüm JavaScript dosyalarınızın ve html bağlantılarınızın dizini işaret eden dize kökenlidir. Boşsa, bununla ilgili: boş. data: hmtl dosyanızı içeren dize, örneğin BufferedReader ile okuyun
Daha fazla bilgi: WebView.loadDataWithBaseURL (java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
Kabul Edilen Cevap benim için çalışmıyor, Bu benim için işe yarıyor
WebSettings webSetting = webView.getSettings();
webSetting.setBuiltInZoomControls(true);
webView1.setWebViewClient(new WebViewClient());
webView.loadUrl("file:///android_asset/index.html");