在以HTML和CSS制作的PhoneGap应用程序中打开PDF

在以HTML和CSS制作的PhoneGap应用程序中打开PDF,css,html,cordova,Css,Html,Cordova,我的iPad应用程序在Phone Gap中出现了一个奇怪的问题。问题是,我必须通过链接在我的应用程序中打开PDF文档,当我单击打开PDF的链接时,它会显示没有反向链接的PDF文档 因此,当我通过一个链接打开应用程序中的PDF文档时,它会把我带到死胡同,我无法返回到应用程序的主页 我的问题是,当我打开一个可以带我回到主页的PDF文件时,我怎么能有一个顶部栏呢?iPad的任何内部元素可能是 非常感谢。尝试使用应用内浏览器插件 如果您使用的是更高版本的Phonegap/Cordova(2.8.0、2.

我的iPad应用程序在Phone Gap中出现了一个奇怪的问题。问题是,我必须通过链接在我的应用程序中打开PDF文档,当我单击打开PDF的链接时,它会显示没有反向链接的PDF文档

因此,当我通过一个链接打开应用程序中的PDF文档时,它会把我带到死胡同,我无法返回到应用程序的主页

我的问题是,当我打开一个可以带我回到主页的PDF文件时,我怎么能有一个顶部栏呢?iPad的任何内部元素可能是


非常感谢。

尝试使用应用内浏览器插件

如果您使用的是更高版本的Phonegap/Cordova(2.8.0、2.9.0等),则应随附该软件-无需安装其他软件

它将允许您在覆盖应用程序的新“窗口”中打开PDF。它有一个“完成”按钮,用户可以使用该按钮关闭它,并在完成后返回到您的应用程序

您可以使用应用程序内浏览器打开PDF,如下所示:

window.open('http://whitelisted-url.com/pdftoopen.pdf', '_blank');
例如,
\u blank
选项触发应用程序内浏览器插件。如果您使用
\u系统
,它可能会在iBooks中打开它(只是在那里猜测-无法100%确定它是否会使用iBooks)。

谢谢asgeo1

我通过使用
window.open()
解决了这个问题



希望对您有所帮助。

尝试使用前缀
https://docs.google.com/viewer?url=
在URL中

比如,
window.open('https://docs.google.com/viewer?url=http://www.example.com/example.pdf&embedded=true“,”空白“,”位置=是“

我最终使用了

如上所述。棘手的部分是修改WebIntent.java以正确识别文件类型:

String type = obj.has("type") ? obj.getString("type") : null;  
 // New code starts  
 Uri uri = obj.has("url") ? Uri.parse(obj.getString("url")) : null;  
 String extension = MimeTypeMap.getFileExtensionFromUrl(obj.getString("url"));  
 if(extension != null){  
      MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();  
      type = mimeTypeMap.getMimeTypeFromExtension(extension);  
 }  
 // New code ends  
 JSONObject extras = obj.has("extras") ? obj.getJSONObject("extras") : null;

尝试使用以下步骤从URL打开任何类型的文档:

  • 安装此插件:cordova插件添加
  • 使用此代码:

    handleDocumentWithURL(函数(){console.log('success');},函数(error){console.log('failure');if(error==53){console.log('没有处理此文件类型的应用程序');},')

它在Android和IOS上都适用于我。我用它来打开图像PDF文件

Android:如果可用,它会使用系统应用程序打开文件,否则会给出一个错误,您可以处理该错误

IOS:它使用“完成”按钮和“选项”按钮在弹出式视图中打开文件

它不会显示您的文档URL。


这里提供的源代码:

是的,当使用phonegap时,window.open会触发我提到的应用内浏览器插件;)这需要用户登录到Google Drive。还要确保对url参数进行编码。聪明的解决方案。我将PDF上传到谷歌硬盘,将共享设置为公共,然后共享链接。我不相信这种方法需要用户登录。是否有人碰巧知道为什么这对我也不起作用?我用的是iPhone4和Cordova3,我不明白“它应该随它一起来”。我正在使用cordova 3.6,是的,您必须安装
org.apache.cordova.inappbrowswer
,它才能工作。这很有效。谢谢@Gallwynmasc-对于Cordova 2.x版,默认情况下包括许多插件(包括应用程序内浏览器)。对于3.x,插件都是可选的,您可以安装所需的插件。
String type = obj.has("type") ? obj.getString("type") : null;  
 // New code starts  
 Uri uri = obj.has("url") ? Uri.parse(obj.getString("url")) : null;  
 String extension = MimeTypeMap.getFileExtensionFromUrl(obj.getString("url"));  
 if(extension != null){  
      MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();  
      type = mimeTypeMap.getMimeTypeFromExtension(extension);  
 }  
 // New code ends  
 JSONObject extras = obj.has("extras") ? obj.getJSONObject("extras") : null;