2011-12-30 17 views
5

Tengo un archivo html en mi directorio de activos y tengo que cargarlo como una aplicación de navegador usando Intent.¿Cómo cargar la página html local con intención en Android?

Aquí está mi código, pero no su trabajo:

startActivity (new Intent(Intent.ACTION_VIEW, 
       Uri.parse("file:///android_asset/Sample.htm"))); 

Podría alguien ayudarme?

+0

Puedes simplemente mostrar también usando webview. –

Respuesta

0

Uso loadUrl() método de WebView para cargar una página HTML

Ejemplo Muestra si faq.html es el archivo html presente en la carpeta de activos a continuación, puede utilizar

WebView html = (WebView) findViewById(R.id.webEulaView); 
html.loadUrl("file:///android_asset/faq.html"); 
+0

que se estaría cargando en un WebView. La pregunta es cómo iniciar el navegador desde la aplicación. –

0

que tenía la misma problema de lo que hice fue copié el contenido de los activos en una base de datos y luego lo saqué de la tarjeta SD

Este es el código para copiar sus activos a sdcard la lógica utilizada es la siguiente las páginas HTML se ponen en el archivo zip en la carpeta de activos contenido es el nombre de la cremallera en la carpeta de activos

boolean succussFlag = false; 
    destination=""; 
    destination=Environment.getExternalStorageDirectory()+"/"; 
    File file = new File(destination); 

    if (!file.exists()){ 
     file.mkdirs(); 
    } 
    else 
    { 
     //file.delete(); 
     //file.mkdir(); 
    } 
    try 
    { 
     InputStream fileInput = context.getAssets().open("content.zip"); 
     ZipInputStream inputStream = new ZipInputStream(fileInput); 

     for (ZipEntry entry = inputStream.getNextEntry(); entry != null; entry = inputStream.getNextEntry()) 
     { 
      String innerFileName = destination + entry.getName(); 
      System.out.println("destination::::"+innerFileName); 
      //    Log.v("inner file name 0",""+innerFileName); 
      File innerFile = new File(innerFileName); 
      if (innerFile.exists()) 
      { 

       innerFile.delete(); 
      } 

      // Check if it is a folder 
      if (entry.isDirectory()) 
      { 
       // Its a folder, create that folder 
       innerFile.mkdirs(); 
      } 
      else 
      { 
       //     System.out.println(" ::::::::::::::INNER FILE COPYING :::: " + innerFile.toString()); 
       FileOutputStream outputStream = new FileOutputStream(innerFileName); 
       final int BUFFER = 4096; 

       BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream, 
         BUFFER); 

       int count = 0; 
       byte[] data = new byte[BUFFER]; 
       while ((count = inputStream.read(data, 0, BUFFER)) != -1) 
       { 
        bufferedOutputStream.write(data, 0, count); 
       } 
       bufferedOutputStream.flush(); 
       bufferedOutputStream.close(); 
      } 

      inputStream.closeEntry(); 
     } 
     inputStream.close(); 
     //   System.out.println(" ::::::::::COPIED TO PRIVATE FOLDER :::: "); 
     succussFlag=true; 
    } 
    catch (IOException e) 
    { 
     //   System.out.println("** EXCEPTION OCCURED WHILE COPYING***"); 
     e.printStackTrace(); 
     succussFlag=false; 
    } 

    return succussFlag; 

después de este le das el siguiente comando

startActivity (new Intent(Intent.ACTION_VIEW,"file://"+  Environment.getExternalStorageDirectory()+"/content"+name_Html ; 
     ); 
+0

tiene que haber una manera más fácil que copiar archivos de activos a la tarjeta SD. eso no tiene sentido. –

Cuestiones relacionadas