0

ZXing ライブラリを使用して、iPhone アプリのバックグラウンドで QR コードをスキャンできますか? QR コードとキャンセル ボタンを探す四角形のカメラ オーバーレイは必要ありません (ScanTest の例に示されているように)。必要なのは、スキャン ボタンを押すと QR コードの読み取りが有効になり、QR コードが読み取られたときに、テキストをアプリケーションに返して、画面上の UILabel に表示できるようにすることです。

これについて、Objective-C でサンプル コードを表示できる人はいますか? ありがとう。

4

2 に答える 2

1

私は似たようなことをしました、そしてあなたにいくつかのガイダンスを提供することができますが、ソースコードを共有することはできません。

ZXingWidgetController.mm、.hファイルを見てください。これは、コンパイル可能な完全に機能するQRcodeスキャンアプリであるため、バックエンドコードを含むようにリバースエンジニアリングすることができます。クラスがUIViewControllerではなくNSObjectを拡張するように.hを編集してから、GUIオブジェクトであるクラスプロパティとインスタンス変数を削除します。

これにより、xcodeは、不要になったすべてのメソッドと変数を見つけて、.mmファイル(willAppearなど)の警告/エラーでマークします。このコードのほとんどは削除できますが、割り当て/割り当て解除をコンストラクター/デコンストラクターに移動することに注意してください。

viewControllerで、このクラスのインスタンスを作成し、クラスを呼び出してスキャンを開始できます。ZXingWidgetController.mmファイルのdidDecodeImageを変更して、QRコードから結果が正常に取得されたときに実行したいことを実行する必要があります。1つの可能性は、コンストラクターを変更して親ビューコントローラーをパラメーターとして受け取り、それをインスタンス変数にデリゲート(__weak)として格納し、それを使用して、didDecodeImageメソッドでその関数の1つを呼び出すことです。他の人は、通知を使用してデータをメインコードに戻す可能性があります。

お役に立てれば!

于 2012-07-31T19:45:03.450 に答える
0

zxing objc ディレクトリには、UIViewController レベルで動作するウィジェットよりも変更が容易な、UIView レベルではなく CA レベルで動作する一連のクラスがあります。

ただし、コア キャプチャ コードはビューが画面上にあるかどうかを追跡して、フレームのキャプチャを自動的に開始および停止するため、これにはまだ少し調整が必要です。

于 2012-08-01T03:13:09.143 に答える