Jak wyświetlić plik PDF za pomocą przeglądarki internetowej w systemie Android bez wcześniejszego pobierania

89

Czy istnieje sposób, aby przeglądarka systemu Android automatycznie otwierała plik PDF, Word lub inny typowy plik bez konieczności przechodzenia przez proces pobierania pliku, a następnie zachęcania użytkownika do otwarcia pliku z aplikacji Pobrane lub paska powiadomień ?

Mamy aplikację internetową, która ma wiele dokumentów, które chcielibyśmy dołączyć i nie musimy konwertować ich do formatu HTML, ale zmuszenie użytkownika do pobrania pliku i ręcznego otwarcia nie jest łatwe do przeszkolenia użytkowników.

W systemie iOS wszystkie te pliki są wyświetlane w przeglądarce. Chciałbym mieć sposób, aby przeglądarka automatycznie uruchamiała pliki w programie Acrobat Reader, QuickOffice lub jakimkolwiek innym programie, który użytkownik musi wyświetlić.

Czy ktoś wie, jak to zrobić? Wiem, że Dokumenty Google obsługują przeglądanie plików PDF, ale osoby korzystające z naszej aplikacji internetowej mogą nie mieć publicznego dostępu do Internetu we wszystkich przypadkach i mogą korzystać z lokalnego serwera internetowego.

Chris Saldanha
źródło
1
Nigdy nie widziałem, żeby to działało w ten sposób. Biorąc to pod uwagę, wyobrażam sobie, że możesz stworzyć własną przeglądarkę, która jest w stanie dekodować i poprawnie wyświetlać pliki pdf. Po prostu nie wierzę, że żadna z popularnych przeglądarek to obsługuje.
FoamyGuy
Czy Twoje pliki PDF są zoptymalizowane pod kątem „szybkiego przeglądania w Internecie”? W przeciwnym razie nie można ich wyświetlić, gdy pobieranie jest nadal w toku - dlatego można je tylko pobrać, a następnie wyświetlić.
Robert

Odpowiedzi:

66

Możesz otworzyć plik PDF w przeglądarce Dokumentów Google, dołączając adres URL do:

http://docs.google.com/gview?embedded=true&url=<url of a supported doc>

Spowoduje to otwarcie pliku PDF w domyślnej przeglądarce lub w widoku sieciowym.

Lista obsługiwanych formatów jest podana tutaj .

arsalank2
źródło
4
To było bardzo pomocne, dziękuję. Nie jestem pewien, czy jest to w 100% konieczne, ale prawdopodobnie warto wspomnieć, że <adres URL obsługiwanego dokumentu> powinien być zakodowany jako urlencoded.
mason81
1
To nie działa dla mnie ... Wyświetla tylko stronę „Ups! Wystąpił problem z wyświetlaniem podglądu tego dokumentu” z przyciskiem pobierania. Po kliknięciu przycisku pobierania nic się nie dzieje.
Lee Yi Hong
25
Powyższy link nie działa w Chrome na Androida, przełączyłem się na https://drive.google.com/viewerng/viewer?embedded=true&url=####i to zadziałało !
QFDev
2
Cześć, wygląda na to, że adres URL w odpowiedzi już nie działa. Otrzymuję nieskończoną pętlę z nim teraz w odbiorniku webView. Adres URL zamieszczony w komentarzu z QFDev działa.
Gene Bo,
To nadal zapisuje dokument w tymczasowym katalogu Androida, jeśli dobrze pamiętam.
Jean-Paul,
4

W szczególności, aby zainstalować wtyczkę pdf.js dla przeglądarki Firefox, nie używasz sklepu z aplikacjami. Zamiast tego przejdź do addons.mozilla.org z poziomu Mozilli i zainstaluj ją stamtąd. Ponadto, aby sprawdzić, czy jest poprawnie zainstalowany, przejdź do menu Narzędzia: Dodatki (nie do adresu URL „about: plugins”, jak mogłoby się wydawać z wersji na komputery stacjonarne).

(Nowe konto, w przeciwnym razie umieściłbym to jako komentarz do powyższej odpowiedzi)

Jameson Quinn
źródło
4
String format = "https://drive.google.com/viewerng/viewer?embedded=true&url=%s";
String fullPath = String.format(Locale.ENGLISH, format, "PDF_URL_HERE");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(fullPath));
startActivity(browserIntent);
Hamzeh Soboh
źródło
3

Też tego potrzebowałem, a powyższe linki przestały działać, więc znalazłem to, co współpracuje z nowym Dyskiem Google:

Google ma usługę, która tworzy link do pliku PDF nie w GDrive: https://docs.google.com/viewer Po prostu dodaj swój adres URL i utworzy link oraz kod IFrame (spójrz uważnie, a zobaczysz wzór i utworzysz linki bez tej usługi internetowej)

Jest też sposób, aby to zrobić w przypadku plików PDF przechowywanych na Dysku Google: https://docs.google.com/viewer?srcid=YOUR_GDRIVE_PDF_DOC_ID_HERE&pid=explorer&efh=false&a=v&chrome=false&embedded=true (może to być link lub src URL elementu iframe)

Testowałem na Androidzie i ładnie wyświetla przeglądarkę PDF.

ubersimple.brad
źródło
Dla mnie, jeśli nie jestem obecnie zalogowany na konto Google, następuje przejście do strony logowania. Czy jest sposób, aby to ominąć i po prostu wyświetlić plik PDF?
h_k
Spróbuj użyć pliku viewerjs.org viewer.js wygląda obiecująco, ponieważ jest niezależny od przeglądarki i opiera się na serwerze, który wykonuje ciężkie prace.
user1493559
2

Niestety natywna przeglądarka obecna na urządzeniach z Androidem nie obsługuje tego typu plików. Zobaczmy, czy w 4.0 będziemy w stanie to zrobić.

Guilherme Oliveira
źródło
2

Możesz tego użyć

webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file"); 
Akash Bisariya
źródło
Czy ktoś może podać powód odrzucenia głosów.
Akash Bisariya
Być może twoja odpowiedź jest odpowiednia dla niektórych technik programowania, a odpowiedzią może być tylko adres URL, nawet ja mogę dodać go do tagu kotwicy, o którym już wspomniano powyżej
Siddaram H
@akash może potrzebujesz więcej wyjaśnień. to zasady tutaj
huzain07
2
  Try this, worked for me.

    WebView view = (WebView) findViewById(R.id.yourWebView);

    view.getSettings().setJavaScriptEnabled(true);
    view.getSettings().setPluginState(WebSettings.PluginState.ON);
    view.loadUrl("http://docs.google.com/gview?embedded=true&url="
                  +"your document link(pdf,doc,docx...etc)");
parvez rafi
źródło
setPluginState ON jest ważne, dzięki wspominając o tym
Bycie Jk
@BeeingJk, setPluginStatejest przestarzałe z API 18 ( stackoverflow.com/questions/19362049/ ... ).
CoolMind
@CoolMind co pokazałeś w linku jest setPluginsEnabledzamiastsetPluginState
Beeing Jk
@BeeingJk, proszę, otwórz ponownie stronę, naciśnij Ctrl + F, napisz "setPluginState" i naciśnij Enter.
CoolMind
@CoolMind ok, dzięki Widziałem to również tutaj, developer.android.com/reference/android/webkit/… , ale nie mogłem usunąć setPluginStateinnego mojego
widoku
0
public class MainActivity extends AppCompatActivity {

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openURL("http://docs.google.com/viewer?url=" + " your pdf link ");
            }
        });
    }

    private void openURL(String s) {
        Uri uri = Uri.parse(s);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(uri,"text/html");
        startActivity(intent);
    }
}
Emon Hossain Munna
źródło
-4
  • Pobierz plik Acrobat Reader .apk na Androida, aby wyświetlić plik PDF
  • Umieść swoje pliki PDF na karcie SD
  • Użyj poniższego fragmentu kodu

    File file= new File("/sdcard/test.pdf");
    Uri path=Uri.fromFile(file);
    Intent i =new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(path,"application/pdf");
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    
nieznany
źródło
4
Dotyczy to przeglądarki internetowej, a nie natywnej aplikacji na Androida. -1
ryandawkins