ionic3+cordova实现IOS TSC蓝牙热敏打印机打印功能

2 篇文章 0 订阅
1 篇文章 0 订阅

苹果手机连接蓝牙打印机可以直接通过系统设置中的蓝牙进行连接,所有工程中就没有做连接打印机的模块;
首先自定义一个cordova插件,引入IOS模块,将官方提供的IOS SDK复制进去,最后目录为:
在这里插入图片描述

修改plugin.xml文件,引入sdk文件:

<header-file src="src/ios/TscPlugin.h" />
    <header-file src="src/ios/TSCSDK.h" />
    <source-file src="src/ios/TscPlugin.m" />
    <source-file src="src/ios/libTSCSDK.a" framework="true"/>

编写.h文件,声明一个接口

#import <Cordova/CDV.h>

@interface TscPlugin : CDVPlugin
- (void) Print:(CDVInvokedUrlCommand *)command;
@end

编写.m文件

#import <Foundation/Foundation.h>
#include "TscPlugin.h"
#include "TSCSDK.h"

@implementation TscPlugin

- (void) Print:(CDVInvokedUrlCommand *)command
{
     NSString* a = [command.arguments objectAtIndex:0];
     NSString* b = [command.arguments objectAtIndex:1];
     NSString* c = [command.arguments objectAtIndex:2];
     NSString* d = [command.arguments objectAtIndex:3];
     NSString* e = [command.arguments objectAtIndex:4];
     NSString* f = [command.arguments objectAtIndex:5];
     NSString* g = [command.arguments objectAtIndex:6];
     NSString* h = [command.arguments objectAtIndex:7];
     NSString* i = [command.arguments objectAtIndex:8];
     NSString* j = [command.arguments objectAtIndex:9];
     NSString* k = [command.arguments objectAtIndex:10];
     NSString* l = [command.arguments objectAtIndex:11];
     NSString* m = [command.arguments objectAtIndex:12];
     NSString* n = [command.arguments objectAtIndex:13];
     NSString* o = [command.arguments objectAtIndex:14];
     NSString* p = [command.arguments objectAtIndex:15];
     NSString* q = [command.arguments objectAtIndex:16];
     NSString* r = [command.arguments objectAtIndex:17];
     NSString* s = [command.arguments objectAtIndex:18];
     NSString* t = [command.arguments objectAtIndex:19];
     NSString* u = [command.arguments objectAtIndex:20];
     NSString* v = [command.arguments objectAtIndex:21];
     NSString* w = [command.arguments objectAtIndex:22];
     NSString* x = [command.arguments objectAtIndex:23];
     NSString* y = [command.arguments objectAtIndex:24];


         TSCSDK *lib = [TSCSDK new];
         [lib openportMFI:@"com.issc.datapath"];

         [lib setup:@"60" height:@"100" speed:@"5" density:@"12" sensor:@"0" vertical:@"2" offset:@"0"];

         [lib clearBuffer];
        [lib printerfont_GB2321:a y:b fontName:@"FONT001" rotation:@"270" magnificationRateX:@"2" magnificationRateY:@"2" content:c];
    [lib printerfont_GB2321:d y:e fontName:@"FONT001" rotation:@"270" magnificationRateX:@"2" magnificationRateY:@"2" content:f];
     [lib printerfont_GB2321:g y:h fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:i];
     [lib printerfont_GB2321:j y:k fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:l];
         [lib printerfont_GB2321:m y:n fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:o];
         [lib printerfont_GB2321:p y:q fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:r];
         [lib printerfont_GB2321:s y:t fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:u];
      [lib printerfont_GB2321:v y:w fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:x];

        [lib sendCommand:y];
        [lib sendCommand:@"\r\n"];
        [lib printlabel:@"1" copies:@"1"];
        [lib closeport:4.0];

}
@end

我是将所有的参数全部一次押进一个方法中来,具体细化有兴趣的可以自己改造;打印中文字体的方法使用printerfont_GB2321。

编写www js文件

var exec = require('cordova/exec');

exports.Print = function (arg0, success, error) {
    exec(success, error, 'TscPlugin', 'Print', arg0);
};

ts中进行调用

1.先声明declare let cordova: any;
2.进行调用打印方法

  cordova.plugins.TscPlugin.Print([
      40,500,itemName1,
      100,500,itemName2,
      160,500,"物料代码:"+itemId,
      200,500,"库位代码:"+stockLocation,
      240,500,"料架号:"+applienArea,
      330,710,typeSpec1,
      360,710,typeSpec2,
      390,710,typeSpec3,
      "QRCODE 50,540,L,10,M,0,M2,S3,\""+"A"+itemId+"789XYZ"+itemId+"\" "],success=>{

    },err=>{

    })

进行打包,配置XCODE

在info中加入两个配置,缺一不可:
在这里插入图片描述
以上步骤都完成后进行真机安装,页面布局还需自己根据纸张情况进行调整,至此IOS蓝牙打印功能就可以使用了,如有问题或更好的想法欢迎加微信交流 zt924099861

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值