クロスプラットフォーム開発について
クロスプラットフォーム開発環境で Brother Print SDK を組み込む方法を紹介します。 ただし、開発環境が 3rd パーティ製ネイティブライブラリを利用できる必要があります。
Xamarin
SDK を追加する
Xamarin ではバインディングという仕組みを利用して Brother Print SDK を利用できます。詳しい情報は Xamarin 公式ドキュメントを参照してください。
iOS SDK のバインディング
- Xamarin.iOS binding library プロジェクトを作成する
BRPtouchPrinterKit.framework
を Native Reference として追加する- Xamarin コマンドラインツールの Objective Sharpie を利用して
ApiDefinition.cs
とStructsAndEnums.cs
を生成する - Xamarin.iOS application プロジェクトを作成する
- binding library プロジェクトへの参照を追加する
Android SDK のバインディング
- Xamarin.Android binding library プロジェクトを作成する
BrotherPrintLibrary.aar
をJars
フォルダに追加する- 名前衝突を解消するため
Transforms/Metadata.xml
に別名を定義する - Xamarin.Android application プロジェクトを追加する
- binding library プロジェクトへの参照を追加する
Transforms/Metadata.xml
の例
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<!-- https://support.brother.com/g/s/es/htmldoc/mobilesdk/guide/getting-started/getting-started-cross-platform.html#bind-the-sdk-for-android -->
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='align']" name="managedName">EsAlign</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='checkPrintEnd']" name="managedName">EsCheckPrintEnd</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='halftone']" name="managedName">EsHalftone</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='margin']" name="managedName">EsMargin</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='orientation']" name="managedName">EsOrientation</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='paperSize']" name="managedName">EsPaperSize</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='pjFeedMode']" name="managedName">EsPjFeedMode</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='port']" name="managedName">EsPort</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='printMode']" name="managedName">EsPrintMode</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='printQuality']" name="managedName">EsPrintQuality</attr>
<attr path="/api/package[@name='com.brother.ptouch.sdk']/class[@name='PrinterInfo']/field[@name='pjPaperKind']" name="managedName">EsPjPaperKind</attr>
<attr path="/api/package[@name='com.brother.sdk.lmprinter']/class[@name='TemplateObjectReplacer.Creator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name ="managedReturn">Java.Lang.Object</attr>
<attr path="/api/package[@name='com.brother.sdk.lmprinter']/class[@name='TemplateObjectReplacer.Creator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>
</metadata>