儿童浏览器在android phonegap中没有在浏览器中显示pdf的内容

时间:2013-08-02 10:11:55

标签: android cordova childbrowser

我已经在android phonegap中使用pdf阅读器两天了..我是phonegap的新手...儿童浏览器插件正在运行,但pdf文件链接出现在浏览器中,页面空白。我添加了插件和一个版本的coredova 2.0.0的phonegap并添加了插件......我错了吗?任何人都可以解决我的问题。提前谢谢。

     <!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=320; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Child Browser Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" charset="utf-8" src="childbrowser.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for PhoneGap to load
    //
    function Bodyload(){
        document.addEventListener("deviceready", onDeviceReady, false);
    }
    // PhoneGap is ready
    //
    function onDeviceReady() {
         console.log("PhoneGap is ready");
         window.plugins.childBrowser.showWebPage( "http://www.google.com/****/" );
    }
    </script>
  </head>
  <body onload="Bodyload();" id="stage" class="theme">    
  </body>
</html>

3 个答案:

答案 0 :(得分:0)

pdf将无法渲染,因为android webview不支持渲染pdf,而childbrowser使用android webview。 相反,您可以使用某些第三方sdks在Android中进行渲染。 他们中的大多数都需要许可证(如quoppa,pdfViewer)。 我没有看到任何开源,但你可以查看以下链接

https://github.com/jblough/Android-Pdf-Viewer-Library

对于ios,你可以使用pspdfkit。他们也提供了一个cordova插件。 通过以下链接。 https://github.com/PSPDFKit/PSPDFKit-Cordova

答案 1 :(得分:0)

我通过使用以下代码解决了这个问题。 首先检查url字符串最后三个字符,如果这些是pdf使用,如果条件否则使用else condition.where WebUrl是你想要打开的url。 此解决方案适用于所有Android版本(在API 9到4.1上测试)。

if(checkPDF ==='pdf'){              window.plugins.childBrowser.showWebPage( 'http://docs.google.com/viewer?url=' + WEBURL + '');         }         其他{              window.plugins.childBrowser.showWebPage(WEBURL);         }

答案 2 :(得分:0)

我认为问题是因为如果不存在,android会自动将“http://”放在你的网址前面。但我也不知道如何解决这个问题。 (我试图解决这个问题。如果我知道更多,我会在这里发布)

var yourURL = "data:application/pdf;base64," + btoa(pdfOutput)  
//btoa() makes its value to base64

window.open(yourURL, "_blank", 
  "location=yes"            //set to no if you do not want to have any url bar
+ "enableViewportScale=yes" //set to "no" if your target should not zoom the pdf
);

输出网址栏:

http://data:application/pdf;base64,(somecode)

what we want to reach:
data:application/pdf;base64,(somecode)