PDF external url


#1

How to open pdf by external url within app in android platform e.g localhost:8080/document/chapter.pdf

Thanks in Advance


#2

there are multiple ways like the cordova plugin fileOpener2, which tries to find an app on your device which can handle the given file/format.

or you can try the inapp-browser plugin and open a new window with _system as target.

But if you really want to open a pdf in your app you need some additional libs like:

or build on top of mozillas pdf.js:
http://viewerjs.org/


#3

thanks Benglter, i will try pdf.js library then inform you about the result.


#4

I am testing sample https://github.com/jeffleus/ionic-pdf.
This is working on chrome but it is not working on device.
need your help bro …


#5

if you are using pdfmake:

The download functionality does not work on mobile devices. use the Cordova File-Plugin to write the pdf somewhere on your device like documents on iOS --> from there you can open it with the FileOpener2 Plugin (this searchs for an app on your device, to open the file)


#6

Assuming that you’re running on an Android device, what does “adb logcat” show, does it show any errors? I have an app which successfully opens/displays a PDF stored at an external URL (Amazon S3) using InAppBrowser and FileOpener.


#7

using cordova file opener, it is work on browser but not on device.
device model is samsung galaxy s2
and code is:
$cordovaFileOpener2.open(
http://localhost:8080/hello/Chapter.pdf’,
‘application/pdf’
).then(function() {
console.log(‘Success’);
}, function(err) {
alert('An error occurred: ’ + JSON.stringify(err));
console.log('An error occurred: ’ + JSON.stringify(err));
});


#8

Galaxy S2 is very old, what version of Android is it running? Ionic only supports Android 4 or higher.

Anyway, it works for me on my Galaxy S3 device, but on iOS you need to use another “file opener” plugin. So this is what I ended up with:

      var chooseFile = function () {
        var deferred = $q.defer();

        // iOS (NOTE - only iOS 8 and higher): https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin
        if (ionic.Platform.isIOS()) {

          FilePicker.pickFile(
            function (uri) {
              chooseFileOk(deferred, uri);
            },
            function (error) {
              chooseFileError(deferred, 'FilePicker');
            }
          );

        // Android: https://github.com/don/cordova-filechooser
        } else {

          fileChooser.open(
            function (uri) {
              chooseFileOk(deferred, uri);
            },
            function (error) {
              chooseFileError(deferred, 'fileChooser');
            }
          );
        }

        return deferred.promise;
      };

      function chooseFileOk(deferred, uri) {
        $log.log('FileManager#chooseFile - uri: ' + uri);

        deferred.resolve(uri);
      }

      function chooseFileError(deferred, source) {
        $log.debug('FileManager#chooseFile - ' + source + ' error: ' + JSON.stringify(error));

        // assume operation cancelled
        deferred.reject('cancelled');
      }

#9

First of all Thanks for your reply
you are right galaxy s2 is very old because when i run this code on s4, it is working but not on s2.
but application requirement, it is work on atleast 4.1 android api and s2 which is currently i used its api 4.1 but"file opener" plugin not work on it. i do’t know what is the reason
need your help bro …


#10

Aha I see,it does work on the S4 (and on my S#) but not on the S2.

So what does “adb logcat” tell you then?


#11

Maybe you can try with crosswalk…


#12

hi …
how to pick only pdf or doc file and upload it to remote server in ionic.
is there any plugins are there
thank you


#13

Crosswalk solves a huge number of device specific problems, installed it today and it solved 3 problems in one go.


#14

Like @fabioferrero said try Crosswalk, big chance it will fix your problem.