2012-10-30 25 views
20

Mobil web uygulamasında pdf indirirken (veya indirmeye çalışırken) Chrome'dan aşağıdaki iletiyi alıyoruz.PDF'de PDF yükleme sorunları IOS

"Uyarı: Bir şey burada değil, erişmeye çalıştığınız site garip davranıyor ve Chrome URL'nin doğru olduğundan emin doğrulayamayan ...!."

Bu, Safari'de sorunsuz çalışıyor ve aslında bunu yapıyoruz.

  1. Yük altında, göstermek istediğimiz belgenin doğru olduğunu doğrulamak için bir arama yapın.
    • belge kullanıcı Tamam mesajı değildir ve daha sonra PDF indirir bir adrese gitmek için sekmesi
  2. Doğrudan sekmeyi kapatmak. GenerateHREF tarafından sağlanan

    DoRequest ("print_report", 
          "VALIDATE", 
          mycallback); 
    
    function mycallback (data,error) { 
    
        var h_href = ""; 
        var h_widget = ""; 
    
        if(error == true) { 
         window.close(); 
         return; 
        }  
    
        h_href = GenerateHREF("print_report", "PRINT"); 
    
        window.location.href = h_href;   
    } 
    

    URL aynı kaynak sitenin içindir ve orijinaline görecelidir:

çok fazla kod gönderme olmadan JavaScript böyle bir şeydir.
Mime tipi uygulama/pdf olarak ayarlanmıştır. İçerik düzeni satır içi olarak ayarlanır. İçerik boyutu üstbilgisini de ayarlamayı denedim, ancak herhangi bir etkisi yok gibi görünüyor.

Content-Disposition: attachment; filename="pp66.26.pdf" 
Content-Length: 31706 
Content-Type: application/pdf 

Bir şeyleri özlüyorum ... sadece ne?

+0

Şu anda navigasyon Chrome'un bağlantıyı görüntülemeye başlamasından hemen önce bir kullanıcı etkileşimi ekleyerek, pop-up engellemeyle ilgili olduğunu tahmin ediyorum. – DuStorm

+0

Özellikle ios Chrome için uzaktan hata ayıklama yanıtı olmasa da. http://stackoverflow.com/questions/11262236/chrome-for-ios-remote-debugger – DuStorm

+0

Bu bir krom anahtar kelimesi olduğunu düşünüyorum, şu bağlantıya bakın: http://code.google.com/p/chromium/issues/ detay? id = 85549, İçerik Uzunluğu ile ilgili bir şey. – joao

cevap

0

Bu, bir açılır pencere/indirme sorunuysa, bir iframe kullanarak gösterebilirdiniz? (; Hat açılan kullanıcı tarafından engellenirse, özellikle oldukça şüpheli görünüyor özellikle window.close())

<iframe src="downloads/report.pdf"></iframe> 
0

Ben de o pop-up davranışı şüpheliler listesinde muhtemelen yüksek olduğunu düşünüyorum. Nihai hedef dosyasını indirmek için olduğundan

Ancak,

Content-Disposition: attachment; filename="pp66.26.pdf" 
Content-Length: 31706 
Content-Type: applicaton/octet-stream 

yanıt başlıklarını değiştirmeyi deneyebilirsiniz ya da .htaccess dosyası üzerinden bir indirme zorlamak için belirli bir klasördeki tüm PDF'leri zorlayarak deneyebilirsiniz , o zaman sadece kullandığınız location.href aracılığıyla kendileriyle bağlantıları:

<FilesMatch "\.pdf$"> 
ForceType applicaton/octet-stream 
Header set Content-Disposition attachment 
</FilesMatch> 
1

deneyin base64 belgeyi ayrıştırmak ve belge veya iframe ilave etmek.

function getAsyncBase64(fileName, callBack){ 
     var xhr = new XMLHttpRequest(); 
     xhr.open('GET', fileName, true); 
     xhr.responseType = 'arraybuffer'; 
     xhr.onload = function (e) { 
     if (this.status == 200) { 
      var uInt8Array = new Uint8Array(this.response || this.responseText); 
      var i = uInt8Array.length; 
      var binaryString = new Array(i); 
      while (i--) { 
       binaryString[i] = String.fromCharCode(uInt8Array[i]); 
      } 
      var dataBinary = binaryString.join(''); 
      var data64 = window.btoa(dataBinary); 
      callback(data64);     
     } 
     xhr.send(); 
    }; 
    function callback(base64){ 
     window.open(base64, "_blank"); 
     //or 
     iframe.src = "data:application/pdf;base64,"+ base64; 
    }; 

    getAsyncBase64(url,callback);