Skip to content

クロスプラットフォーム開発について

クロスプラットフォーム開発環境で Brother Print SDK を組み込む方法を紹介します。 ただし、開発環境が 3rd パーティ製ネイティブライブラリを利用できる必要があります。

Xamarin

SDK を追加する

Xamarin ではバインディングという仕組みを利用して Brother Print SDK を利用できます。詳しい情報は Xamarin 公式ドキュメントを参照してください。

iOS SDK のバインディング

  1. Xamarin.iOS binding library プロジェクトを作成する
  2. BRPtouchPrinterKit.framework を Native Reference として追加する
  3. Xamarin コマンドラインツールの Objective Sharpie を利用して ApiDefinition.csStructsAndEnums.cs を生成する
  4. Xamarin.iOS application プロジェクトを作成する
  5. binding library プロジェクトへの参照を追加する

Android SDK のバインディング

  1. Xamarin.Android binding library プロジェクトを作成する
  2. BrotherPrintLibrary.aarJars フォルダに追加する
  3. 名前衝突を解消するため Transforms/Metadata.xml に別名を定義する
  4. Xamarin.Android application プロジェクトを追加する
  5. 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>