Saya memang mencoba sampel, demo dari kode Google dan sumber daya lain dengan WebView
, tetapi ketika saya mencoba melakukannya dalam kode saya sendiri, itu tidak berhasil untuk saya.
Saya ingin memuat myfile.html
yang saya masukkan ke folder aset, dan menggunakan:
private WebView myWebView;
myWebView.loadUrl("file:///android_assets/myfile.html");
Pada emulator menunjukkan kesalahan
Halaman web di
file:///android_assets/myfile.html
tidak dapat dimuat karena: File yang diminta tidak ditemukan./android_assets/myfile.html
Ketika saya meletakkan file itu ke res/raw/
folder dan menggunakan:
myWebView.loadUrl("file:///android_res/raw/myfile.html");
maka hanya emulator android 2.2 API level 8 yang dapat memuat file mungkin, versi lama lainnya menunjukkan kesalahan yang sama. Apakah saya melewatkan sesuatu?
Apakah ada cara untuk memuat file .html yang ada dalam paket aplikasi yang berfungsi pada semua versi API?
raw
tidak bekerja. Saya akan menggunakan untukraw-de
,raw-fr
dan seterusnya. Sekarang saya harus melakukannya sendiri.Jika struktur Anda harus seperti ini:
/assets/html/index.html
/assets/scripts/index.js
/assets/css/index.css
Kemudian lakukan saja ( Android WebView: menangani perubahan orientasi )
if(WebViewStateHolder.INSTANCE.getBundle() == null) { //this works only on single instance of webview, use a map with TAG if you need more webView.loadUrl("file:///android_asset/html/index.html"); } else { webView.restoreState(WebViewStateHolder.INSTANCE.getBundle()); }
Pastikan Anda menambahkan
WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true); }
Kemudian gunakan saja url
<html> <head> <meta charset="utf-8"> <title>Zzzz</title> <script src="../scripts/index.js"></script> <link rel="stylesheet" type="text/css" href="../css/index.css">
sumber
tempel file .html Anda di folder aset folder proyek Anda. dan buat file xml di folder layout dengan kode fol: my.xml:
<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
tambahkan kode fol dalam aktivitas
setContentView(R.layout.my); WebView mWebView = null; mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("file:///android_asset/new.html"); //new.html is html file name.
sumber
Salin dan Tempel file .html Anda di folder aset Proyek Anda dan tambahkan kode di bawah ini ke Aktivitas Anda di onCreate ().
WebView view = new WebView(this); view.getSettings().setJavaScriptEnabled(true); view.loadUrl("file:///android_asset/**YOUR FILE NAME**.html"); view.setBackgroundColor(Color.TRANSPARENT); setContentView(view);
sumber
Anda bisa membaca file html secara manual dan kemudian menggunakan
loadData
atauloadDataWithBaseUrl
metode WebView untuk menampilkannya.sumber
The kompilasi men-debug berbeda dari rilis satu, sehingga:
Pertimbangkan struktur file Project Anda seperti itu [ kasus ini jika untuk Debug assemble ]:
src | debug | assets | index.html
Anda harus memanggil index.html ke WebView Anda seperti:
web.loadUrl("file:///android_asset/index.html");
Demikian seterusnya, untuk Release assemble harus seperti:
src | release | assets | index.html
src | main | assets | index.html
sumber