如何在Android 11+上使用存储访问框架加载webview中的html文件?

rfbsl7qr  于 2022-12-09  发布在  Android
关注(0)|答案(1)|浏览(301)

我有一个应用程序,它显示从本地存储在WebView中的html文件的内容。我使用标准路径,例如:
我的文件夹。加载URL(“文件:///存储/模拟/0/我的文件夹/我的文件。
在android 11+上我必须使用SAF。我可以获取文件的URI。但是我如何将其传递到WebView?或者我如何使用SAF在WebView中加载html文件的内容?
编辑:我知道哪里出了问题。第一个文件(index.html)被正确加载。这是它的uri:

content://com.android.externalstorage.documents/tree/9C33-6BBD%3AGames/document/9C33-6BBD%3AGames%2FWalkthroughs%2Fdoom%2Findex.html

但是,它包含本地链接。WebView回调

public boolean shouldOverrideUrlLoading(WebView view, String url) {
       view.loadUrl(url);
    }

还有一个问题。传入的“String url”格式不正确,它不是正确的URI。这是什么来:

content://com.android.externalstorage.documents/tree/9C33-6BBD%3AGames/document/www.abcgames.sk/wsdindex.html@p=navody_zobraz&id=4004.html

真实的的路径是:

/storage/9C33-6BBD/Games/Walkthroughs/doom/www.abcgames.sk/wsdindex.html@p=navody_zobraz&id=4004.html

这就是它是如何转储到磁盘与一些网络下载应用程序。

jv4diomz

jv4diomz1#

webView.getSettings().setAllowContentAccess(true);

  webView.loadUrl(uri.toString());

相关问题