【问题标题】:webview cannot load html file from sd cardwebview 无法从 sd 卡加载 html 文件
【发布时间】:2011-03-29 13:48:51
【问题描述】:

我正在尝试从 sd 卡加载一个 html 文件。笔记: -> 如果我加载 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");            



}

谢谢! :)

【问题讨论】:

  • 您在使用 LogCat 时遇到什么错误? “READ_EXTERNAL_STORAGE”呢?我总是用某物。比如 Environment.getExternalStorageDirectory().getAbsolutePath() + "/FMS/1/message.html"。我想知道是否可以使用 loadUrl 方法从存储中加载 HTML 文件。也许你应该尝试使用 loadData(...)

标签: android webview


【解决方案1】:

米斯卡,

您不应该像那样对 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");
}

【讨论】:

  • 它只下载 html 文件。如果 html 文件包含加载图像和脚本的相对路径怎么办?
  • 你应该注意到应用应该有权限
【解决方案2】:

我认为网址是 file:///sdcard/FMS/1/message.html

【讨论】:

    【解决方案3】:

    你可以这样访问它,.html文件本地的任何文件都可以加载,除了视频

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多