Cordova / Phonegap通过JavaScript inappbrowser打印

时间:2014-08-09 14:18:12

标签: javascript ios cordova plugins printing

我想从我正在开发的iPad应用程序中打印一个页面(或一些页面)。应用程序在启动时所做的第一件事是通过以下代码加载外部网站:

window.location = https://*****.**;

正是来自这个外部网站,我现在想要打印一些东西(在iPad上的Safari中运行得很好)。试试这个简单的代码

window.print();

但它不适用于Cordova / Phonegap的包装网络应用程序。

我知道有这个>的插件但那些需要js / html代码才能在本地工作,对吗?

有关如何在我的应用中提供打印的任何建议吗?任何建议都是非常受欢迎的,希望有一个简单的方法!

谢谢!

1 个答案:

答案 0 :(得分:1)

我知道这是一个古老的问题,但到目前为止还没有回答,我遇到了同样的问题。

将您正在访问的页面通过ajax加载到本地javascript变量中,并将包含您要打印的html的本地变量发送到print插件的print函数。

<强> OR

如果要打印当前页面,只需将内容放入本地变量并将其发送给您的打印插件。

https://github.com/hazemhagrass/phonegap-print

您可以使用jQuery $ .ajax,XmlHttpRequest或任何您想要将html字符串转换为局部变量的内容。

示例用法(需要jQuery):

$.get('https://*****.**',function(html){
    window.app.print(data,
        function(){
            console.log('success');
        },
        function(){
            console.log('error');
        }
    );
});

***OR***

var html = $('body').html();
window.app.print(html,
    function(){
         console.log('success');
    },
    function(){
         console.log('error');
    }
);

window.app = window.app || {};
window.app.print = function(html,successCallback,errorCallback) {
    successCallback = successCallback|| function(){};
    errorCallback = errorCallback|| function(){};
    var type = "text/html";
    var title = "test.html";
    var fileContent = html;
    window.plugins.PrintPlugin.print(
        fileContent,
        successCallback,
        errorCallback,
        "",
        type,
        title
    );
};