在webView android中加载本地html文件

Posted

技术标签:

【中文标题】在webView android中加载本地html文件【英文标题】:Loading local html file in webView android 【发布时间】:2014-01-19 08:35:28 【问题描述】:

我必须将现有的 html 文件加载到位于文件系统中此路径的 WebView 中:

/data/data/com.example.example/files/file.html

但是,当WebView 加载它时,我什么也看不到。 谁能帮我?

WebView 代码(假设路径是我上面写的路径):

 WebView webView = (WebView)findViewById(R.id.webView1);

  File htmlFile = new File(path);
    if(htmlFile.exists())
    
        webView.loadUrl(htmlFile.getAbsolutePath());

    

【问题讨论】:

htmlFile.exists() 是否返回 true?如果是这样,您在 logcat 中看到了什么? htmlFile.exists() 总是返回 true... 我试图将日志放入 if 并且 logcat 显示该日志... 【参考方案1】:

试试这个,添加 file:/// 并做一些不同的事情:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///data/data/com.example.example/files/file.html");  

但是,您可以将文件放入源代码中的assets 文件夹中,然后执行以下操作:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///android_asset/file.html");

【讨论】:

【参考方案2】:

html 文件应放在 assets 文件夹中,该文件夹将属于您项目的根目录。

所以移动你的文件以防日蚀

assets/index.html

在 Android Studio 项目中使用此文件夹:

/app/src/main/assets/index.html

现在使用

WebView wv= (WebView)findViewById(R.id.webView1);
wv.loadUrl("file:///android_asset/index.html");

【讨论】:

在我的项目中没有名为 android_asset 的文件夹 然后创建资产文件夹【参考方案3】:

您需要实现一个 ContentProvider 来将本地文件映射到 uri,如此链接 how to display a local file into Android Webview 中所述

或者您只需从 Assets 文件夹中加载任何 html 页面,如下所示:

 WebView wv= (WebView)findViewById(R.id.webView1);
 wv.loadUrl("file:///android_asset/yourfile.html");
 wv.getSettings().setjavascriptEnabled(true);

【讨论】:

【参考方案4】:

试试这个:

web = (Webview) findViewById(R.id.webview);
web.setWebClient(new WebViewClient());
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setAllowFileAccess(true);
web.getSettings().setAllowFileAccessFromFileURLs(true);

【讨论】:

以上是关于在webView android中加载本地html文件的主要内容,如果未能解决你的问题,请参考以下文章

Android-WebView中加载本地html的方法

在webview android中加载本地html文件

如何在 Android WebView 中加载本地图像

Xamarin 移动应用开发指南 - 如何在 iOS、Android 和 UWP 的 WebView 中加载本地网站 (HTML/CSS/JS ..) [重复]

在 NativeScript 应用程序中加载本地 HTML/JavaScript/CSS

NativeScript WebView 在 src 文档中加载本地资源