在离子应用程序中显示pdf

时间:2016-04-29 15:00:17

标签: angularjs pdf mobile angularjs-directive ionic-framework

我正在开发一个带离子框架的应用程序,我需要显示一个pdf。

我已经在互联网上阅读了很多内容并发现该指令要使用

https://github.com/winkerVSbecks/angular-pdf-viewer

问题是我在将指令与我的离子应用程序集成时遇到了问题。

我已完成指定的步骤:

  1. bower install angular-pdf-viewer

  2. 包含lib,AngularJS和PDFJS的路径:(这里我更改了路径)

      <script src="lib/pdfjs-dist/build/pdf.js"></script>
      <script src="lib/angular/angular.js"></script>
      <script src="lib/angular-pdf-viewer/dist/angular-pdf-viewer.min.js"></script>
    
  3. 在您的角应用中包含lib作为依赖项:

      var app = angular.module('App', ['pdf']);
    
  4. 然后我把它放在模板中

    <pdf-viewer    delegate-handle="my-pdf-container"    url="www.publishers.org.uk/_resources/assets/attachment/full/0/2091.pdf" scale="1"    show-toolbar="true"    ></pdf-viewer>
    

    但是我收到了这个错误

      

    [$ parse:syntax]语法错误:令牌&#39; pdf&#39;是表达式

    的第64列的意外标记

    我做错了什么?

    提前致谢!

2 个答案:

答案 0 :(得分:1)

我认为网址值是指您的范围。所以假设你有$ scope.pdf =&#34;你想要的网址&#34;,你会做url =&#34; pdf&#34;在标签中。

答案 1 :(得分:0)

尝试使用此Phonegap插件https://github.com/ti8m/DocumentHandler

以下是我在ng-click上整合它的方法。

$scope.HandleDocumentPlugin = function () {
    if (DocumentViewer != null) {
        DocumentViewer.previewFileFromUrlOrPath(
            function () {
                console.log('success');
            }, function (error) {
                if (error == 53) {
                    console.log('No app that handles this file type.');
                    var alert = $ionicPopup.alert({
                        title: 'Alert!',
                        template: "There is no app installed that handles this file type."
                    });
                    alert.then(function (res) {

                    });
                }
            }, $scope.PDF_URL);
    }
    else if (DocumentHandler != null) {
        DocumentHandler.previewFileFromUrlOrPath(
           function () {
               console.log('success');
           }, function (error) {
               if (error == 53) {
                   console.log('No app that handles this file type.');
                   var alert = $ionicPopup.alert({
                       title: 'Alert!',
                       template: "There is no app installed that handles this file type."
                   });
                   alert.then(function (res) {

                   });
               }
           }, $scope.PDF_URL);
    }
    else {
        console.log("error");
    }
}