问题描述
我正在使用PDF.js在Android应用程序内部显示PDF文件。在Android 10之前的版本中,它都可以正常工作,但是从“ targetSdkVersion 30”开始,它就不再起作用。
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