Printing 使用带Phonegap的SenchaTouch打印到外部收据打印机

Printing 使用带Phonegap的SenchaTouch打印到外部收据打印机,printing,cordova,sencha-touch,Printing,Cordova,Sencha Touch,我正在SenchaTouch中创建一个应用程序。我还将使用PHONEGAP部署ios、android和blackberry。在应用程序中,我需要打印一些详细信息,如收据。我不知道如何使打印功能应兼容上述平台 我还需要打印机的清单 谢谢。首先,您应该知道iOS仅支持部分HP打印机的空气打印。其次,我甚至不确定黑莓能做到这一点,但我可能错了 您需要做的是编写phonegap代码,以便与iOS、Android的实现以及黑莓的本机air print代码进行接口。它可能不适合您的特定环境,但如果您能够在以

我正在SenchaTouch中创建一个应用程序。我还将使用PHONEGAP部署ios、android和blackberry。在应用程序中,我需要打印一些详细信息,如收据。我不知道如何使打印功能应兼容上述平台

我还需要打印机的清单


谢谢。

首先,您应该知道iOS仅支持部分HP打印机的空气打印。其次,我甚至不确定黑莓能做到这一点,但我可能错了


您需要做的是编写phonegap代码,以便与iOS、Android的实现以及黑莓的本机air print代码进行接口。

它可能不适合您的特定环境,但如果您能够在以下方面下功夫,此解决方案将起作用:

在上设置web服务,该服务接受包含要打印数据的打印请求。然后编写一个小的Windows/Linux/OSX程序,轮询web服务以获取新的打印作业。如果程序发现新的打印请求,它会将其发送到正确的打印机。这可以作为服务编写,也可以作为计划任务运行


现在,当您需要从移动应用程序打印时,它可以向您的web服务发出ajax调用,并发送要打印的数据

我不能代表Android或Blackberry,但iOS应用程序可以打印到两种类型的打印机:

  • AirPrint认证打印机。您可以使用PhoneGap打印插件从iOS PhoneGap应用程序打印到AirPrint打印机
  • 被苹果认证为其“MFi计划”的一部分。我只知道一台MFi打印机,但它是收据打印机,所以它可能正是您需要的(您需要编写自己的PhoneGap插件,以便与打印机的SDK接口):

  • 注意:使用AirPrint时,您无需担心可用打印机的列表。用户将看到一个对话框,其中包含其网络上所有可用AirPrint打印机的列表。您的打印作业将发送到他们选择的任何打印机。

    基本算法是以编程方式实例化
    iframe
    ,用内容填充它,然后调用其打印方法,如下所示:

    // create print frame
    var pFrame = Ext.get('printerFrame');
    if (!pFrame) {
      Ext.getBody().insertHtml("beforeEnd","<iframe id='printerFrame' style='display:none'>    </iframe>");
      pFrame = Ext.get('printerFrame');
    }
    
    var contentWindow = pFrame.dom.contentWindow;
    contentWindow.document.body.innerHTML = 'This is some html';
    contentWindow.print();
    
    //创建打印框
    var pFrame=Ext.get('printerFrame');
    if(!pFrame){
    Ext.getBody().insertHtml(“beforeed”和“);
    pFrame=Ext.get('printerFrame');
    }
    var contentWindow=pFrame.dom.contentWindow;
    contentWindow.document.body.innerHTML='这是一些html';
    contentWindow.print();
    

    调用
    print()
    方法启动iOS打印机选择器,使您能够打印到任何AirPrint打印机。这种技术也适用于ExtJS4。

    您是如何实现它的?我需要做一些非常类似的事情。我找到了插件,但在ipad上不起作用,请你提供一个例子。。。皈依。ipa项目,“sencha touch”+“index.html(来自插件)”+“PhoneGap build”打印按钮没有任何改变谷歌云打印?