PDF.js 在 Android 11 中无法显示来自 externalFilesDir 的 PDF

Tef*_*cky 8 android pdf.js android-storage

我正在使用 PDF.js 在我的 Android 应用程序中显示 PDF 文件。在 Android 10 之前,它可以正常工作,但从“targetSdkVersion 30”开始,它就不再工作了。

如果我想打开并显示 PDF 文件,PDF.js 显示

Missing PDF "file:///storage/emulated/0/Android/data/<App-ID>/files/file.pdf

路径绝对正确,我检查了它并使用它生成了它getExternalFilesDir(null).absolutePath

要加载的整个 URL 是 file:///android_asset/web/viewer.html?file=/storage/emulated/0/Android/data/<app-ID>/files/file.pdf

使用“targetSdkVersion 29”并且不更改任何其他内容,一切正常,因此似乎“targetSdkVersion 30”在某种程度上导致了问题。

Tef*_*cky 8

解决方案非常简单(为我感到羞耻):

直到 API 29 我只使用了:

webView.settings.allowFileAccessFromFileURLs = true
Run Code Online (Sandbox Code Playgroud)

从 API 30 开始我必须使用:

webView.settings.allowFileAccessFromFileURLs = true
webView.settings.allowFileAccess = true
Run Code Online (Sandbox Code Playgroud)