2016-04-14 82 views
0

大家好,我想從我的應用程序啓動Chrome瀏覽器與本地file.html 這裏是我的代碼:打開Chrome瀏覽器在本地文件的Android

String url2 = "file:///" 
     + Environment.getExternalStorageDirectory().getAbsolutePath() 
     + File.separator + "new folder"+ "/index.html"; 
    url2 = url2 .replaceAll(" ", "%20"); 
    Uri uri2 = Uri.parse(url2); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri2); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.setPackage("com.android.chrome"); 

    try { 
     startActivity(intent); 
    } catch (ActivityNotFoundException ex) { 
     intent.setPackage(null); 
     startActivity(intent); 
    } 

我在Chrome手動打開它通過粘貼URL它工作正常。 但是從應用程序中打開時,它會打開像甚至沒有在Chrome,但在文本查看器

+0

'由鉻貼網址它的工作原理fine'。謝謝你提供的信息。我知道Chrome不在列表中顯示本地html文件的意圖。我總是認爲Chrome不會從文件加載內容。但它確實是完美的。對於其他人來說,奇怪的是,即使你提到了鉻,它仍然不起作用。 – greenapps

+0

當試圖打開html文件時,它不會出現在瀏覽器列表中,但是當粘貼url時,它會打開感謝@shhp回答它現在有效 – Radwa

+0

'它在嘗試打開html文件時不會出現在瀏覽器列表中。確實。但你的信息打開了我的眼睛。所以我做了一個''ChromeMate'應用程序,而不是在列表中。當選擇ChromeMate以提供的文件URL(以建議的@shhp的方式)啓動Chrome時。 – greenapps

回答

1

試試這個一些HTML代碼的文本文件:

Uri uri2 = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath() 
    + File.separator + "new folder"+ "/index.html")); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri2); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setClassName("com.android.chrome", "com.google.android.apps.chrome.Main"); 

try { 
    startActivity(intent); 
} catch (ActivityNotFoundException ex) { 
    try { 
     intent.setPackage(null); 
     startActivity(intent); 
    } catch (Exception e) {} 
} 
+0

非常感謝它的工作 – Radwa

+0

這工作。 Chrome已啓動。我在大約十臺設備上測試了這個。大多數Chrome瀏覽器無法打開該頁面,並且經常表示它沒有權限。我認爲,與所有應用程序一樣,Chrome需要EXTERNAL_READ權限。但那些沒有要求。由於缺乏它不能打開HTML文件。 – greenapps

+0

'startActivity(intent);'。 |如果Chrome沒有安裝,第二個需要另一個try-catch。或者是什麼原因? (我通過那些許多設備忘記了)。 – greenapps

相關問題