Kotlin 从内部存储加载 html 到 webview

Kotlin load html from internal storage to webview

我想将 html 页面从我的内部存储加载到网络视图中,但我找不到任何关于如何执行此操作的示例。这是我能做的:

webView.loadUrl("file:///android_asset/article_0028_0071.html")

这项工作有效,但我必须手动将页面添加到资产。然后我在内部存储中得到了相同的文件,完整路径是:/data/user/0/com.example.app/files/articles/article_0028_0071.html 所以我试过了:

path = "/data/user/0/com.example.app/files/articles/article_0028_0071.html"
webView.loadUrl(path)

这没有给我任何错误,而是一个空白页面。也尝试了 "file:///articles/article_0028_0071.html" 但同样的结果没有错误空白页面。

所以我想知道我应该如何编写从内部存储访问 html 的路径?

您可以根据需要处理每种类型的 url,只需通过自定义的 WebViewClient

设置您的 webview
webview.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url) {
            if (url.startWith("file:")) {                     
                //do whatever you need
                }
                return false;
            }else if(url.startWith("http"){....etc

您只需在路径前添加 file:/// 即可。

path = "file:///data/user/0/com.example.app/files/articles/article_0028_0071.html"
webView.loadUrl(path)

这项工作非常完美