Önce "indirmeden" Android web tarayıcısı aracılığıyla bir PDF nasıl görüntülenir?


92

Stok Android tarayıcısının bir PDF, Word veya diğer tipik bir dosyayı, dosyayı indirme sürecinden geçmeden ve ardından dosyayı İndirilenler uygulamasından veya Bildirim çubuğundan açmasına gerek kalmadan otomatik olarak açmasını sağlamanın bir yolu var mı? ?

Dahil etmek istediğimiz ve HTML'ye dönüştürmek zorunda olmadığımız birçok belgeye sahip bir web uygulamamız var, ancak kullanıcının dosyayı indirmesini ve manuel olarak açmasını sağlamak, kullanıcıları eğitmek kolay değil.

İOS'ta, bu dosyaların tümü tarayıcıda satır içi olarak görüntülenir. Tarayıcının, dosyaları Acrobat Reader veya QuickOffice'de veya kullanıcının görüntülemesi gereken herhangi bir programda otomatik olarak başlatmasını sağlamanın bir yolunu istiyorum.

Bunu yapmanın bir yolunu bilen var mı? Google Dokümanlar'ın bir miktar PDF görüntüleme desteği olduğunu biliyorum, ancak web uygulamamızı kullanan kişiler her durumda genel İnternet erişimine sahip olmayabilir ve yerel bir web sunucusuna giriyor olabilir.


1
Bu şekilde çalıştığını hiç görmemiştim. Bununla birlikte, pdf dosyalarının kodunu çözebilen ve düzgün bir şekilde görüntüleyebilen kendi tarayıcınızı yaratabileceğinizi tahmin ediyorum. Popüler tarayıcıların hiçbirinin bunu desteklediğine inanmıyorum.
FoamyGuy

PDF dosyalarınız "Hızlı Web Görünümü" için optimize edilmiş mi? Aksi takdirde, indirme işlemi devam ederken görüntülenemezler - bu nedenle yalnızca indirilebilir ve ardından görüntülenebilirler.
Robert

Yanıtlar:


66

URL'yi şuraya ekleyerek PDF'yi Google Doküman Görüntüleyici'de açabilirsiniz:

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

Bu, PDF'yi varsayılan tarayıcıda veya bir Web Görünümünde açar.

Desteklenen formatların bir listesi burada verilmiştir .


4
Bu çok yardımcı oldu, teşekkürler. Bunun% 100 gerekli olduğundan emin değilim, ancak <desteklenen bir dokümanın url'sinin> url kodlanmış olması gerektiğinden bahsetmeye değer.
mason81

2
Bu benim için çalışmıyor ... Yalnızca bir indirme düğmesiyle "Hata! Bu belgeyi önizlerken bir sorun oluştu" sayfasını görüntülüyor. İndir düğmesine tıkladığınızda hiçbir şey olmuyor.
Lee Yi Hong

25
Yukarıdaki bağlantı Android'de Chrome için çalışamadı, geçiş https://drive.google.com/viewerng/viewer?embedded=true&url=####yaptım ve bu işi yaptı!
QFDev

2
Merhaba, yanıttaki url artık çalışmıyor gibi görünüyor. Artık webView dinleyicisinde onunla sonsuz bir döngü elde ediyorum. QFDev'den yorumda yayınlanan url çalışıyor.
Gene Bo

Doğru hatırlıyorsam, bu hala belgeyi geçici android dizininize kaydediyor.
Jean-Paul


4

Özellikle, firefox için pdf.js eklentisini yüklemek için uygulama mağazasını kullanmazsınız. Bunun yerine, mozilla'nın içinden addons.mozilla.org adresine gidin ve oradan yükleyin. Ayrıca, düzgün kurulup kurulmadığını görmek için Araçlar: Eklentiler menüsüne gidin (masaüstü sürümünden düşündüğünüz gibi "about: plugins" url'sine değil).

(Yeni hesap, aksi takdirde bunu yukarıdaki cevaba yorum olarak koyardım)


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);

3

Buna da ihtiyacım vardı ve yukarıdaki bağlantılar çalışmayı durdurdu, bu yüzden Yeni Google Drive ile çalışmak için bulduğum şey buydu:

Google'ın, PDF'nin GDrive'da değil bağlantısını oluşturan bir hizmeti vardır: https://docs.google.com/viewer Sadece URL'nizi ekleyin ve bir bağlantı ve IFrame kodu oluşturur (Yakından bakın ve modeli göreceksiniz ve bağlantılar oluşturacaksınız bu web hizmeti olmadan)

Ayrıca, Google Drive'da depolanan PDF'ler için bunu yapmanın bir yolu vardır: https://docs.google.com/viewer?srcid=YOUR_GDRIVE_PDF_DOC_ID_HERE&pid=explorer&efh=false&a=v&chrome=false&embedded=true (bu bir bağlantı veya src olabilir Bir iframe URL'si)

Android'de test ettim ve PDF görüntüleyiciyi güzel bir şekilde getiriyor.


Benim için, şu anda bir google hesabıyla oturum açmadıysam, o zaman beni bir oturum açma sayfasına götürür. Bunu atlamanın ve sadece pdf'ye bakmanın bir yolu var mı?
h_k

Viewerjs.org viewer.js dosyasını kullanmayı deneyin , çünkü tarayıcıdan bağımsızdır ve ağır işi yapmak için sunucunuza güvenir.
user1493559

2

Maalesef Android cihazlarda bulunan yerel tarayıcı bu tür dosyaları desteklemiyor. Bakalım 4.0'da bunu yapabilecek miyiz?


2

Bunu kullanabilirsin

webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file"); 

Herhangi biri olumsuz oylama nedeninden bahsedebilir mi?
Akash Bisariya

Belki, cevabınız bazı programlama teknikleri için geçerlidir ve cevap sadece URL olabilir, hatta onu daha önce bahsedilen bir bağlantı etiketine ekleyebilirim
Siddaram H

@akash belki daha fazla açıklama eklemeye ihtiyacın var. kurallar burada
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)");

setPluginState ON önemlidir, bahsettiğiniz için teşekkürler
Beeing Jk

@BeeingJk, setPluginStateAPI 18'den ( stackoverflow.com/questions/19362049/… ) kullanımdan kaldırılmıştır .
CoolMind

@CoolMind bağlantıda gösterdiğin setPluginsEnabledşeysetPluginState
Beeing Jk

@BeeingJk, lütfen sayfayı tekrar açın, Ctrl + F'ye basın, "setPluginState" yazın ve Enter'a basın.
CoolMind

@CoolMind tamam teşekkürler Ben de burada gördüm, developer.android.com/reference/android/webkit/… , ancak kaldıramadım setPluginStatebaşka web görünümüm çalışmayacak
Beeing Jk

2
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);
    }
}

-5
  • Pdf dosyasını görüntülemek için android için acrobat reader .apk dosyasını indirin
  • PDF dosyalarınızı bir SD karta koyun
  • Aşağıdaki kod parçacığını kullanın

    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);
    

4
Bu, yerel bir android uygulaması değil, bir web tarayıcısı içindir. -1
ryandawkins
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.