苹果手机连接蓝牙打印机可以直接通过系统设置中的蓝牙进行连接,所有工程中就没有做连接打印机的模块;
首先自定义一个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