Webview не может загрузить HTML-файл с SD-карты - PullRequest
17 голосов
/ 29 марта 2011

Я пытаюсь загрузить HTML-файл с SD-карты.Примечание: -> если я загружаю http://www.google.com, это работает.-> файл существует -> у меня есть разрешения для Интернета и WRITE_EXTERNAL_STORAGE

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");            



}

Спасибо!:)

Ответы [ 3 ]

39 голосов
/ 29 марта 2011

Misca,

Вы не должны жестко кодировать каталог sdcard, как этот. Обычно на /mnt/sdcard/, но это никогда не гарантировано. Вы также должны всегда проверять, существует ли sdcard и монтируется ли первым!

Вы хотите использовать следующее:

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    Log.d(TAG, "No SDCARD");
} else {
    webComp.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/FMS/1/message.html");
}
1 голос
/ 29 марта 2011

Я думаю, что URL является файлом: ///sdcard/FMS/1/message.html

0 голосов
/ 22 марта 2014

Вы можете получить к нему доступ таким образом, любые файлы, локальные для файла .html, будут загружены, кроме видео

webView.loadUrl("file://" + Environment.getExternalStorageDirectory() + "/myapprepository/index.html");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...