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

问题描述

我正在使用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”会造成某种问题。

解决方法

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

我最多只使用API​​ 29:

webView.settings.allowFileAccessFromFileURLs = true

自API 30以来,我必须使用:

webView.settings.allowFileAccessFromFileURLs = true
webView.settings.allowFileAccess = true