我想从我正在开发的iPad应用程序中打印一个页面(或一些页面)。应用程序在启动时所做的第一件事是通过以下代码加载外部网站:
window.location = https://*****.**;
正是来自这个外部网站,我现在想要打印一些东西(在iPad上的Safari中运行得很好)。试试这个简单的代码
window.print();
但它不适用于Cordova / Phonegap的包装网络应用程序。
我知道有这个>的插件但那些需要js / html代码才能在本地工作,对吗?
有关如何在我的应用中提供打印的任何建议吗?任何建议都是非常受欢迎的,希望有一个简单的方法!
谢谢!
答案 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
);
};