2011-12-30 3 views
5

자산 디렉토리에 html 파일이 있는데, Intent를 사용하여 브라우저 응용 프로그램으로로드해야합니다. 여기 Android에서 인 텐트를 사용하여 로컬 HTML 페이지를로드하는 방법은 무엇입니까?

내 코드,하지만 작동하지 않는 그 :
startActivity (new Intent(Intent.ACTION_VIEW, 
       Uri.parse("file:///android_asset/Sample.htm"))); 

이 사람이 나를 도울 수

?

+0

간단히 웹 뷰를 사용하여 표시 할 수도 있습니다. –

답변

0

사용 loadUrl()은 faq.html 자산 폴더에 HTML 파일 존재는 당신이 내가 같은했다

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

이 WebView에로드됩니다. 문제는 앱에서 브라우저를 시작하는 방법입니다. –

0

사용할 수있는 경우 예

샘플 HTML 페이지를로드 할 WebView 방법 문제는 내가 한 것인데 은 자산의 내용을 데이터베이스에 복사 한 다음 sdcard에서 가져 왔습니다.

여기에 HTML 페이지가 내용이 이후에 자산 폴더

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; 

의 우편의 이름입니다 자산 폴더에 zip 파일에 넣어 다음과 같이 사용되는 논리가 를 sdcard에 당신의 자산을 복사하는 코드입니다 다음과 같은 명령을 내릴 수 있습니다.

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

자산에서 SD 카드로 파일을 복사하는 것보다 쉬운 방법이 있습니다. 그건 말이 안돼. –

관련 문제