दिलचस्प पोस्ट
इकाई फ़्रेमवर्क मॉडल परिभाषाओं में वर्ग गुणों के लिए 'आभासी' का उपयोग क्यों करें? AJAX का उपयोग करते हुए कॉलबैक का अनुरोध jQuery संबंधपरक सेट-आधारित प्रश्न कर्सर से बेहतर क्यों हैं? Xcode 5 में उपलब्ध नए प्रलेखन कमांड क्या हैं? एसस। एससीएसएस: नेस्टिंग और कई वर्गों? एक JSON सूची में तत्वों का क्रम संरक्षित है? कार्डव्यू लेआउट_विंड = "मैच_पेरेंट" अभिभावक रीसाइक्लरदृश्य चौड़ाई से मेल नहीं खाता जब स्प्रिंग सिक्योरिटी का इस्तेमाल किया जाता है, तो बीन में मौजूदा यूज़रनेम (यानी सुरक्षा कंसोर्ट) की जानकारी प्राप्त करने का सही तरीका क्या है? Magento – एक विशिष्ट विशेषता मान के साथ उत्पादों को पुनर्प्राप्त करें कैसे आईफोन 5 (वाइडस्क्रीन डिवाइस) का पता लगा सकता है? जावा कास्ट ऑपरेटर कैसे काम करता है? जीसीसी -4 4.2 निकास कोड 1 आईफ़ाइल के साथ असफल रहा I एंड्रॉइड एक्शनबार कैसे एक्लिप्स के लिए एडवाइमपमेंट लायब्रेरी v7 को जोड़ने के लिए लिनक्स के तहत जीसीसी में std :: थ्रेड का उपयोग करने के लिए सही लिंक विकल्प क्या है? विंडो के किनारे के संबंध में पॉपओवर की एक्स स्थिति के आधार पर बूटस्ट्रैप पॉपओवर की स्थिति बदलने?

फोनगैप InAppBrowser प्रदर्शन पीडीएफ 2.7.0

मैं एंड्रॉइड में PhoneGap InAppBrowser के साथ एक बाहरी पीडीएफ प्रदर्शित करना चाहता हूं, लेकिन यह काम नहीं कर रहा है।

यह मेरा जेएस कोड है:

<script> function openPDF() { var ref = window.open('http://www.i-drain.net/userfiles/file/einbauanleitung_iboard.pdf', '_blank', 'location=yes'); ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); }); ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); }); ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); }); ref.addEventListener('exit', function(event) { alert(event.type); }); } </script> 

मैं एक छवि पर क्लिक करने के बाद पीडीएफ खोलना चाहता हूं ताकि मैं इस एचटीएमएल कोड का उपयोग कर सकूं:

  <a href="#" onclick="openPDF()" > <img src="images/button.png"> </a> 

वेब के समाधान से एकत्रित समाधान "फोनगैप InAppBrowser प्रदर्शन पीडीएफ 2.7.0"

जो इस समस्या से जुड़ी हुई है, वह सभी के लिए जो मैंने अंत में पाया है:

एचटीएमएल 5 ऑब्जेक्ट टैग: काम नहीं कर रहा है

एंबेडेड टैग: काम नहीं कर रहा है

childbrowser प्लगइन: मुझे लगता है कि यह काम करेगा, लेकिन यह 2.0.0 संस्करण के लिए डिज़ाइन किया गया है। तो आपको बहुत सारी त्रुटियां मिल जाएंगी, इसलिए मुझे इसे काम करने के लिए नहीं मिला।

PhoneGap InAppViewer: यदि आप इसे इस तरह प्रयोग करते हैं:

 window.open('http://www.example.com/test.pdf', '_blank', 'location=yes') 

यह काम अभ्यस्त InAppViewer पीडीएफ खोल नहीं सकता, पीडीएफ बाहरी या स्थानीय संग्रहीत है, तो यह कोई फर्क नहीं पड़ता।

मेरे समाधान अब तक (नहीं वास्तविक विचार क्या था):

आप _system के साथ विंडो फ़ंक्शन को कॉल कर सकते हैं उसके जैसा:

 window.open('http://www.example.com/test.pdf', '_system', 'location=yes') 

यह सामान्य ब्राउज़र में पीडीएफ खोल देगा और इसे डाउनलोड करेगा। डाउनलोड करने के बाद यह पूछेगा कि उसे पीडीएफ व्यूअर के साथ खोलना चाहिए। लेकिन आपको अपने ऐप पर वापस जाना होगा और इसके बाद इसे फिर से खोलना होगा।

एक और संभावना यह होगी कि आप इसे अपने एसडीसीडी फोनगैप फाइलसिस्टम एपीआई के साथ डाउनलोड कर लें।

 var fileTransfer = new FileTransfer(); fileTransfer.download( "http://img.hiwab.com/javascript/ics-android.png", "file://sdcard/ics-android.png", function(entry) { alert("download complete: " + entry.fullPath); }, function(error) { alert("download error source " + error.source); alert("download error target " + error.target); alert("upload error code" + error.code); }); 

आखिरी बात यह है कि Google डॉक्स / ड्राइव का उपयोग करने के लिए इसे Google डॉक्स से जुड़े इनपैव्यूयर के साथ खोलने के लिए है:

 document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { window.open('https://docs.google.com/viewer?url=http://www.example.com/test.pdf&embedded=true', '_blank', 'location=yes'); ref = window.open('index.html', '_self'); } 

यह ऐप में पीडीएफ को Google डॉक्स पर देखेगा। आप यहां अपना परिमार्जन जनरेट कर सकते हैं: https://docs.google.com/viewer यहां तक ​​कि अगर आप अपनी पीडीएफ फाइल बदलते हैं, तो यह अभी भी काम करेगा

मुझे उम्मीद है कि यह सारांश आपको समय बचाने में मदद करेगा। अगर एक और समाधान मुझे पता है

एंड्रॉइड के पास अपने ब्राउज़र में कोई देशी पीडीएफ दर्शक क्षमता नहीं है (आईओएस सफारी के विपरीत) जहाँ तक मैं देख सकता हूँ वहां दो अच्छे विकल्प हैं:

  1. पूरी तरह से डाउनलोड करना छोड़ें और Google डॉक व्यूवर की ऑनलाइन दृश्य क्षमताओं के माध्यम से पीडीएफ दिखाएं, जैसा कि इस स्टैक ओवरफ्लो उत्तर में बताया गया है

  2. DO फ़ाइल को डाउनलोड करें और एंड्रॉइड फोनगैप ऐप के लिए FileOpener प्लगइन का उपयोग करें जैसा कि इस स्टैक ओवरफ्लो उत्तर में समझाया गया है। यह या तो संस्थापित पीडीएफ रीडर में फाइल खोल देगा या विकल्प के साथ उपयोगकर्ता को पेश करेगा।

मैंने आईओएस पर पीडीएफ डाउनलोड करने और दिखाने के बारे में कुछ चीजें लिखी हैं और इन विकल्पों को मैंने एंड्रॉइड फोनगैप डेवलपर्स के लिए अपने ब्लॉग पोस्ट में दिखाया है।

इस तरह से प्रयास करें कि यह काम करेगा

 var ref = window.open('http://docs.google.com/viewer?url=http://www.i-drain.net/userfiles/file/einbauanleitung_iboard.pdf', '_system', 'location=yes'); 

मार्क स्टर का उत्तर बहुत व्यापक है। हालांकि, Google डॉक्स के साथ पीडीएफ खोलने के लिए उपयोगकर्ता को अपने Google खाते से लॉग इन करने की आवश्यकता होती है।

यदि आप ऐसे पीडीएफ प्रदर्शित कर रहे हैं जो एक ऐसे सर्वर पर स्थित हैं जो आपकी खुद की है तो आप इसे से बच सकते हैं और निम्न दृष्टिकोण का उपयोग कर सकते हैं: आप अपने सर्वर पर PDF.js लाइब्रेरी सेटअप कर सकते हैं। यह ओपन सोर्स प्रोजेक्ट है जो वेब ब्राउज़र में पीडीएफ देखने के लिए भी गूगल डॉक्स आधारित है।

आप तब अपने सर्वर पर सिर करने के लिए InAppBrowser प्लगइन का उपयोग कर सकते हैं, जहां PDF.js झूठ है, URL में प्रदर्शित करने के लिए पीडीएफ के लिए एक पथ निर्दिष्ट कर रहा है। सीओआरएस मुद्दे होने से बचने के लिए, पीडीएफ आपके सर्वर पर भी होना चाहिए। यदि यह एक बाहरी पीडीएफ है, तो आप एक वैकल्पिक हल लिख सकते हैं, जैसा कि यहां बताया गया है ।

आप पीडीएफ क्लाइंट पक्ष को इसके समान कोड के साथ प्रदर्शित कर सकते हैं (InAppBrowser प्लगइन का उपयोग करके)

 var fileName = "myPdfOnMyServer.pdf"; var url = encodeURIComponent('files/uploads/' + fileName); var ref = window.open( 'https://www.<my website>.com/pdfjs-1.0.10XX-dist/web/viewer.html?file=' + url, '_blank', 'location=no,closebuttoncaption=Close,enableViewportScale=yes'); 

एंड्रॉइड वेबव्यू में पीडीएफ व्यूअर का अंतर्निहित नहीं है उपयोगकर्ता को Google डॉक दर्शक उदाहरण के लिए रीडायरेक्ट करें: http://docs.google.com/viewer?url=http://example.com/example.pdf

निम्न चरणों का उपयोग कर यूआरएल से किसी प्रकार के दस्तावेज खोलने की कोशिश करें:

  • इस प्लगइन को इंस्टॉल करें: कॉर्डोवा प्लगइन जोड़ https://github.com/ti8m/DocumentHandler
  • इस कोड का उपयोग करें:

    (error == 53) {console.log ('कोई भी ऐसा एप्लिकेशन जो इस फ़ाइल को संभालता है) को संभालता है; टाइप करें। ');}},' http://www.example.com/path/to/document.pdf ');

यह मेरे लिए एंड्रॉइड और आईओएस पर काम करता है। मैंने इसे खुली छवियों और पीडीएफ फाइलों के लिए इस्तेमाल किया था

एंड्रॉइड : यदि उपलब्ध है, तो सिस्टम ऐप्स का उपयोग करके फ़ाइलें खुल जाती हैं, अन्यथा यह एक त्रुटि देता है, जिसे आप संभाल सकते हैं

आईओएस : यह पॉपअप में फ़ाइलें खोलता है जैसे कि डोन बटन और ऑप्शन बटन के साथ दिखाई देता है।

यह आपके दस्तावेज़ यूआरएल नहीं दिखाता है

स्रोत यहां उपलब्ध है: https://github.com/ti8m/DocumentHandler

मैंने इसे एचटीएमएल की एक ही फाइल में स्क्रिप्ट होने की कोशिश की और उसने मेरे लिए काम किया, केवल एक ही बदलाव यह था कि मैंने छवि पर "alt" विशेषता को जोड़ा है:

  <html lang="en"> <head> <meta charset="utf-8" /> <title></title> </head> <body> <a href="#" onclick="openPDF()" > <img alt="aaa" src="images/button.png"> </a> </body> </html> <script> function openPDF() { var ref = window.open('http://www.i-drain.net/userfiles/file/einbauanleitung_iboard.pdf', '_blank', 'location=yes'); ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); }); ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); }); ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); }); ref.addEventListener('exit', function(event) { alert(event.type); }); } </script> 
 function openPDF() { var ref = window.open('http://docs.google.com/viewer?url=http://www.i-drain.net/userfiles/file/einbauanleitung_iboard.pdf', '_system', 'location=yes'); ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); }); ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); }); ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); }); ref.addEventListener('exit', function(event) { alert(event.type); }); }