SELECT Query不适用于在Mobile Application中检索PDF

时间:2015-12-22 05:55:11

标签: javascript html5 pdf.js

我正在构建基于HTML5的混合应用程序,需要从后端Sharepoint服务器下载,存储和显示PDF文档。为了查看PDF,我使用的是PDF.js.下载和存储PDF文档工作正常,我得到相应的成功消息。 现在,当我尝试从本地数据库中选择SELECT数据时,查询失败了,我不知道在哪里。用于检索数据的代码与PDF.js example

中提到的相同

下面是下载,存储和检索我正在使用的数据的代码:

    function getRawData(){

                            var xmlHTTP = new XMLHttpRequest();
    xmlHTTP.open('GET','http://servername.com/TestDoc.pdf',true);
                            xmlHTTP.setRequestHeader("Authorization", "Basic " +"Base64String"); 
                            xmlHTTP.responseType = 'arraybuffer';

                            xmlHTTP.onload = function(e)
                            {
                                var arr = new Uint8Array(this.response);
                                saveToDb(arr);
                            };
                                xmlHTTP.send();
                        //This function is successful
                        }


                        function saveToDb(rwdt){
                            db.transaction(function (tx) {
                                tx.executeSql('INSERT INTO pdfdata (rawdata) VALUES (?)',[rwdt],SuccessInsert,errorInsert);
                            });
                        //This function is successful
                        }

                        function SuccessInsert(tx,result){
                            alert("Last inserted ID = " + result.insertId);//This is triggered
                        }

function retrieveFromTable(){
                        db.transaction(function (tx) {
tx.executeSql('SELECT * FROM pdfdata',[],showpdfNew,selecterror);
                        });                        
                    }
function showpdfNew(tx,rs){
                        var r = rs.rows.item(0);
                        var url = r['rawdata'];
                        alert("Alerts work only till here");
                        PDFJS.workerSrc = 'js/pdf.worker.js';
                        // Asynchronous download PDF
                        PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf) {
                            // Fetch the first page
                            pdf.getPage(1).then(function getPageHelloWorld(page) {
                                var scale = 1.5;
                                var viewport = page.getViewport(scale);
                                // Prepare canvas using PDF page dimensions
                                var canvas = document.getElementById('the-canvas');
                                var context = canvas.getContext('2d');
                                canvas.height = viewport.height;
                                canvas.width = viewport.width;
                                var renderContext = {
                                    canvasContext: context,
                                    viewport: viewport
                                };
                                page.render(renderContext);
                            });
                        });
                    }

相应的文件 - > pdf.js和pdf.worker.js包含在项目文件夹中,也包含在index.html中。 HTML页面只有3个简单的按钮, onclick 到上面显示的功能。 任何人都可以指出上述逻辑中缺少的东西吗?

修改: 如果我尝试直接在移动应用程序中显示PDF(而不是存储在本地数据库中然后打开),那么它会打开而没有任何问题。

0 个答案:

没有答案