如何使用ngCordova fileopener2在iOS上使用默认应用程序打开PDF?

时间:2016-05-04 13:26:00

标签: cordova ipad pdf ionic-framework ngcordova

背景

我正在构建一个Ionic / Cordova应用程序。我所针对的主要平台是IOS,但应用程序最终可能是跨平台的。我想使用已安装的PDF查看器启动下载并在设备上打开PDF。我不希望在打开文件时提示用户选择要使用的应用程序。

环境

  • Visual Studio 2015 Update 2
  • Cordova 6.1.1
  • TACO更新8.1
  • 节点6.0.0
  • 运行iOS 9.2(13C75)的iPad Mini 2
  • iPad Air 2运行9.2.1(13D15)
  • Adob​​e Acrobat Reader

问题说明

当我尝试在iPad(iPad Mini或Air 2)上打开PDF时,会出现一个小对话框,其中包含应用程序图标形式的选项列表。选项包括'消息','邮件'注释'等等以及“复制到Adobe Acrobat”#39;选择'复制到Adobe Acrobat'选项将在Adobe Acrobat中启动我的PDF。

我希望使用相应的应用程序启动内容,而无需从列表中选择一个。我总是希望我的PDF在Adobe Acrobat中启动,而不会提示用户选择操作。

在Android上执行相同的代码时,将使用默认的PDF查看器按预期打开PDF。

相关代码示例

以下是正在执行的代码,用于下载文件并将其与打开文件的调用一起存储在设备上。对于pdf,mime设置为' application / pdf'

$cordovaFileTransfer.download(category.assetPath, targetPath, {}, true)
                .then(function (result) {
                    result.file(function (file) {
                        var localFile = file.localURL;
                        resolveLocalFileSystemURL(localFile, function (entry) {
                            var nativePath = entry.toNativeURL();
                            if (ionic.Platform.isAndroid()) {
                                nativePath = decodeURIComponent(entry.toURL());
                            }

                            // Open in another app, will fail if app doesn't exist that can open the mime type
                            $cordovaFileOpener2.open(nativePath, mime).then(function () {
                                // Success!
                            }, function (err) {
                                // Error!
                            });
                        }, function (error) {
                            //handle error here
                        });
                    }, function (error) {
                        // handle error here 
                    });
                }, function (err) {
                    // Error
                }, function (progress) {
                    $timeout(function () {
                        category.downloadProgress = progress.loaded / progress.total;
                    });
                });
        }

问题

是否可以使用默认应用程序在iOS平板电脑上打开Ionic / Cordova移动应用程序中的内容而不会在每次选择应用程序时提示用户?

如何在安装了Adobe Reader的iPad上安装FileOpener2插件,而不要求用户每次选择PDF时都先选择应用程序/操作?

1 个答案:

答案 0 :(得分:2)

据我所知,iOS中不可能使用文件打开器插件将其默认为特定应用程序并亲自尝试过。在您的情况下,iOS webview内置支持更好地使用inappbrowser插件作为PDF查看。