Chcę wyświetlać zawartość PDF w przeglądarce internetowej. Oto mój kod:
WebView webview = new WebView(this);
setContentView(webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf");
Wyświetla się pusty ekran. Ustawiłem również uprawnienia do internetu.
You've reached the bandwidth limit for viewing or downloading files that aren't in Google Docs format....
. Więc nie wydaje się wiarygodne.Jeśli korzystasz z adresu URL tylko do przeglądania, użytkownik nie powinien logować się na tam konto Google.
źródło
Otwieranie pliku PDF za pomocą dokumentów Google to zły pomysł pod względem wrażeń użytkownika. Jest naprawdę powolny i nie odpowiada.
Rozwiązanie po API 21
Od api 21 mamy PdfRenderer który pomaga konwertować plik PDF do Bitmap. Nigdy go nie używałem, ale wydaje się dość łatwe.
Rozwiązanie dla dowolnego poziomu API
Innym rozwiązaniem jest pobranie pliku PDF i przekazanie go przez Intent do dedykowanej aplikacji PDF, która wykona niezłą robotę, wyświetlając go. Szybkie i przyjemne wrażenia użytkownika, zwłaszcza jeśli ta funkcja nie jest najważniejsza w Twojej aplikacji.
Użyj tego kodu, aby pobrać i otworzyć plik PDF
}
Aby intencja działała, musisz utworzyć FileProvider, aby udzielić aplikacji odbierającej uprawnienia do otwarcia pliku.
Oto jak to wdrażasz: W swoim Manifeście:
Na koniec utwórz plik file_paths.xml w filtrze zasobów
Mam nadzieję, że to pomoże =)
źródło
Użyj tego kodu:
źródło
Tutaj załaduj z progressDialog. Musisz dać WebClientowi, w przeciwnym razie wymusi otwarcie w przeglądarce:
źródło
Można użyć Mozilla PDF.js projektu. Zasadniczo pokaże ci plik PDF. Spójrz na ich przykład .
Używam go tylko w przeglądarce (stacjonarnej i mobilnej) i działa dobrze.
źródło
Właściwie wszystkie rozwiązania były dość złożone i znalazłem naprawdę proste rozwiązanie (nie jestem pewien, czy jest dostępne dla wszystkich wersji sdk). Otworzy dokument pdf w oknie podglądu, w którym użytkownik może przeglądać i zapisywać / udostępniać dokument:
(Kotlin)
źródło
Pobierz kod źródłowy stąd ( otwórz plik PDF w przeglądarce internetowej na Androida )
activity_main.xml
MainActivity.java
źródło
To jest rzeczywisty limit użytkowania, na który Google zezwala, zanim pojawi się błąd wspomniany w komentarzach , jeśli jest to plik PDF raz w życiu, który użytkownik otworzy w aplikacji, czuję, że jest całkowicie bezpieczny. Chociaż zaleca się stosowanie natywnego podejścia przy użyciu wbudowanego frameworka w systemie Android z systemu Android 5.0 / Lollipop, nazywa się to PDFRenderer .
źródło
źródło