我需要同时在iOs和Android中打印Webview。
在Android中,一切正常,而在iOs中,可以运行打印对话框,但不显示任何内容。
在调试插件本机代码时,我在APPPrinter.m
中找到了对这些行的多次调用
dispatch_sync(dispatch_get_main_queue(), ^{
item = [[UIMarkupTextPrintFormatter alloc]
initWithMarkupText:content];
});
当
content
第一次包含webview html时,后者被设置为nil
,这是否正常?这是用于调用插件的代码段。
this.http.get('../../assets/css/print.css', { responseType: 'text' }).subscribe(
cssFile => {
let PDF_HTML = `<style>${cssFile}</style> ${content}`;
let html = '<html>';
html += '<head>';
html += '<style>';
html += cssFile;
html += '</style>';
html += '</head>';
html += '<body>';
html += content;
html += '</body>';
html += '</html>';
this.printer.print(html, options)
.then(res => {
console.log(res);
},
err => {
console.error(err);
});
},
err => {
console.error(err);
});
这是我的
ionic info
输出:cli packages: (C:\Users\xxxxxxxxx\AppData\Roaming\nvm\v10.16.0\node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : not installed
Gulp CLI : [10:40:17] CLI version 3.9.1 [10:40:17] Local version 3.9.1
local packages:
@ionic/app-scripts : 3.2.4
Cordova Platforms : android 7.1.4
Ionic Framework : ionic-angular 3.9.8
System:
Android SDK Tools : 26.1.1
Node : v10.16.0
npm : 6.9.0
OS : Windows 10
Environment Variables:
ANDROID_HOME : C:\Users\xxxxxxxxx\AppData\Local\Android\Sdk
Misc:
backend : pro
包json:
"@ionic-native/printer": "4.20.0"
"cordova-plugin-printer": "0.8.0",
谢谢你的支持!
ps。
我已经打开了相应的问题here
最佳答案
对于那些可能遇到模拟问题的人:
似乎问题以以下形式存在于CSS规则中:
page-break-<xxx>
用
break-<xxx>
代替分页符可解决此问题。与MDN WebDocs中一样,
page-break
现在已被弃用。奇怪的是,Android无法识别break-语法,但这超出了此问题的范围。
关于ios - Cordova ionic 打印插件在iO中发送零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59108752/