我想使用Android中的phonegap InAppBrowser显示外部PDF,但无法正常工作。
这是我的JS代码:
<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>
我想在单击图像后打开pdf,所以我使用以下html代码:
<a href="#" onclick="openPDF()" > <img src="images/button.png"> </a>
对于每个被这个问题困扰的人,我终于找到了它们:
HTML 5对象标记: 不起作用
嵌入式标签: 不起作用
childBrowser插件: 我认为它可以工作,但是它是针对2.0.0版本设计的。因此,您会遇到很多错误,所以我没有使它起作用。
Phonegap InAppViewer: 如果您这样使用它:
window.open('http://www.example.com/test.pdf', '_blank', 'location=yes')
它不会工作。InAppViewer无法打开PDF,该PDF是外部存储还是本地存储都没有关系。
到目前为止,我的解决方案(不是实际的想法):
您可以使用_system调用window函数。像那样:
window.open('http://www.example.com/test.pdf', '_system', 'location=yes')
这将在常规浏览器中打开PDF并下载。下载后,它将询问是否应使用PDF查看器打开它。但是您必须返回到您的应用,然后再将其打开。
另一种可能性是,您可以使用Phonegap Filesystem API将其下载到sdcard中,如下所示:
var fileTransfer = new FileTransfer(); fileTransfer.download( "http://developer.android.com/assets/images/home/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 docs / drive将其与链接到google docs的InAppViewer一起打开:
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'); }
因此,即使您更改了pdf文件,它仍然可以使用
希望本摘要有助于您节省时间。如果还有其他解决方案,请告诉我