2011-03-29 18 views
17

Estoy tratando de cargar un archivo html desde una tarjeta SD. Nota: -> si cargo http://www.google.com, funciona. existe> el archivo - - > tengo permisos para Internet y WRITE_EXTERNAL_STORAGEwebview no puede cargar el archivo html desde la tarjeta sd

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    addB = (Button) findViewById(R.id.add); 
    webComp = (WebView) findViewById(R.id.webC); 

    WebSettings webSettings = webComp.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setSupportZoom(false); 
    webSettings.setAllowFileAccess(true); 
    webSettings.setLoadsImagesAutomatically(true); 
    webSettings.setSavePassword(false); 
    webSettings.setSaveFormData(false); 
    webSettings.setJavaScriptEnabled(true);   

    webComp.setWebViewClient(new HelloWebViewClient());      



    webComp.loadUrl("/sdcard/FMS/1/message.html");    



} 

Gracias! :)

+3

¿Qué error Qué obtienes cuando usas LogCat? ¿Qué pasa con "READ_EXTERNAL_STORAGE"? Siempre usé algo como Environment.getExternalStorageDirectory(). getAbsolutePath() + "/FMS/1/message.html". Me pregunto si es posible cargar un archivo HTML desde el almacenamiento utilizando el método loadUrl. Tal vez deberías probar una solución con loadData (...) – Rainer

Respuesta

39

Misca,

Usted no debe codificar el directorio de la tarjeta sd así. Está típicamente en /mnt/sdcard/ pero esto nunca está asegurado. ¡También debería verificar siempre si la tarjeta sd existe y está montada primero!

que desee utilizar la siguiente:

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
    Log.d(TAG, "No SDCARD"); 
} else { 
    webComp.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/FMS/1/message.html"); 
} 
+0

Es correcto y funciona sin ningún problema ... –

+0

está descargando solo archivos html. ¿Qué pasa si el archivo html contiene rutas relativas para cargar imágenes y scripts? –

+0

Debería observar que la aplicación debe tener permiso Phuong

1

Creo que la url es file: ///sdcard/FMS/1/message.html

0

puede acceder a él de esta manera, cualquier archivo local al archivo .html podrán ser cargados a excepción de vídeo

webView.loadUrl("file://" + Environment.getExternalStorageDirectory() + "/myapprepository/index.html"); 
Cuestiones relacionadas