Пакет: React-Native-Webview @ ^ 6.11.1 (также пробовал обновиться до последней версии с теми же результатами)
React Native Webview дает сбой нашего приложения при попытке загрузить файл PDF в браузер. Мы уже решали эту проблему на другом веб-сайте и реализовали проверку URL-адресов для поиска .pdf
в URL-адресе и соответствующей обработки этого варианта использования. К сожалению, это не похоже на этот вариант использования, потому что URL-адрес не содержит .pdf
, как вы можете видеть в выходных данных журнала cra sh ниже.
Я обращаюсь к Stack Overflow, потому что не знаю, как проверить тип файла HTTP-запроса, выполняемого в веб-просмотре, если этот тип файла отсутствует в URL-адресе.
Я знаю, что это сайт Angular, после просмотра кода; и действие щелчка в приложении angular запускает следующий метод: vm.retrieveDocument(content.fileId, content.fileName)
Этот веб-сайт работает должным образом и загружает прикрепленный PDF-файл при просмотре в браузере Google Chrome на Android.
IOS работает должным образом, поскольку IOS поддерживает просмотр файла PDF в веб-просмотре.
Google неоднократно рекомендовал мне проверить URL-адрес на наличие .pdf, что мы реализовали; но я еще не встречал рекомендаций по URL-адресу, который не содержит расширения файла.
2020-05-29 13:48:51.500 9282-9282/com.COMPANY.EmployeeApp.android E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.COMPANY.EmployeeApp.android, PID: 9282
java.lang.IllegalArgumentException: Can only download HTTP/HTTPS URIs: blob:https://COMPANY.WEBSITE.com/da0d14e9-2210-4598-ad68-de99b4e600b0
at android.app.DownloadManager$Request.<init>(DownloadManager.java:461)
at com.reactnativecommunity.webview.RNCWebViewManager$2.onDownloadStart(RNCWebViewManager.java:190)
at Do.handleMessage(PG:154)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)