当前位置: 首页 > 面试题库 >

Phonegap InAppBrowser显示pdf 2.7.0

后树
2023-03-14
问题内容

我想使用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文件,它仍然可以使用

希望本摘要有助于您节省时间。如果还有其他解决方案,请告诉我



 类似资料:
  • 使用表情面板增加 mBot 的可玩性。 表情面板可通过 RJ25 线连接到主板上对应的接口。 坐标 如上图所示,表情面板以左上角为坐标 0 点, x ,y 的方向如箭头示意。参数有效范围: x: -15 ~ 15 y: -7 ~ 7 1. 表情面板(接口1)显示图案()持续()秒 在指定接口连接的表情面板显示指定图案,持续一段时间后熄灭。 示例: 按下空格键,mBot 的外接表情面板会显示指定图案

  • Composite Images watermark(['/img/shepherd.jpg', '/img/logo.png']) .image(watermark.image.lowerRight()) .then(function (img) { document.getElementById('composite-image').appendChild(img); }); Al

  • 在 MShowInstDetails show ShowUnInstDetails show 下面添加以下代码: ShowInstDetails hide ;安装过程,该项默认为show,hide表示不显示安装信息,点击显示按钮后显示。 ShowUnInstDetails hide ;卸载过程,该项默认为show,hide表示不显示安装信息,点击显示按钮后显示。 效果如图:

  • void display(string template [, string cache_id [, string compile_id]]) This displays the template. Supply a valid template resource type and path. As an optional second parameter, you can pass a cach

  • 显示文字或者表情。 用法 Your browser does not support the video tag. 案例:保险箱 说明:使用旋钮制作密码器,通过显示屏显示密码。输入密码正确后指示灯亮起,按下按钮保险箱被开启。 所需模块:电源、蓝牙模块、按钮、旋钮、显示屏、双舵机驱动、舵机驱动包、转接线10cm。

  • 显示屏模块能够显示输入值。你也可以通过编程自定义要显示的信息,如数字、标点和表情信息等。 净重量:12.4g 体积:24×48×14mm 参数 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 支持图像、表情、ASCII编码字符等多种输出。

  • LED点阵屏幕 小程的屏幕是由128颗LED组成的点阵,可以显示英文字符、数字与图案。 坐标示意图 如上图所示,表情面板以左上角为坐标 0 点, x ,y 的方向如箭头示意。参数有效范围: x:-15 ~ 15 y:-7 ~ 7 1. 显示图案()()秒 在小程的屏幕上显示图案,持续一段时间后熄灭。图案和时间由用户自定义,鼠标单击可修改,默认值如下: 示例: 当按下按钮A时,小程的屏幕会依次显示这

  • 8×16 蓝色LED点阵