畢竟我解決了它這樣的,我在這條路上學到了很多關於JSNI :-)
public native void handlePrintEvent() /*-{
var theInstance = this;
(function() {
var beforePrint = function() {
console.log('Functionality to run before printing.');
[email protected]::preparePrint()();
};
var afterPrint = function() {
console.log('Functionality to run after printing');
};
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
}());
}-*/;
非常重要的與變量theInstance的東西,否則將無法正常工作!
此功能應該在你的Widget(com.myproject.xyz)類的C'tor被調用來安裝打印處理器
然後,你需要實現的功能preparePrint()來執行一些特定的打印邏輯(這實際上是我需要的)。
希望別人發現這個有用
可以使用JSNI http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html – WLGfx
或JsInterop。那將是做這種事情的「新」方式 –