2

私たちはphonegap(2.4.0)-iOS(6)およびAndroidプラットフォーム用のアプリケーションを開発しています。私たちのアプリはBarcodeScannerプラグインを使用しています。プラグインはAndroidで問題なく動作していますが、iOSでいくつかの問題が検出されました。

最初にファイルCDVBarcodeScanner.mmCDVPlugin.hが見つからなかったので、この行の周りのif / elseチェックについてコメントしました:そして#import <CORDOVA/CDVPlugin.h>config.xmlファイルにこの行を追加しました:<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner" /> その後、エラーなしで正常にビルドされましたが、クリックした後スキャンボタンは何も起こらず、何も出力に書き込まれませんでした。

次に、AndroidとiOSのbarcodescanner.jsを比較したところ、Androidjsファイルの最後にログを追加した後次のことがわかりました。

if(!window.plugins) {
    console.log("something 1");
    window.plugins = {};
}
if (!window.plugins.barcodeScanner) {
    window.plugins.barcodeScanner = new BarcodeScanner();
    console.log("something 2");
}

出力は、アプリケーションの開始後に書き込まれました。iOSの場合、同様の部分にいくつかのコンソールログも追加しました。

(function() {
   if (!window.plugins) window.plugins = {}
   console.log("something 1");
   if (!window.plugins.barcodeScanner) {
        window.plugins.barcodeScanner = new BarcodeScanner();
        console.log("something 2");
   }
   else {
        console.log("Not installing barcodeScanner: window.plugins.barcodeScanner already exists")
   }
})

しかし、誰も書かれていませんでした。

すべてのアドバイスをありがとう。

4

1 に答える 1

0

これらの変更とプラグインの動作を試しました。

  1. phonegap2.3にダウングレードしました
  2. -O0コンパイルフラグをzxing-all-in-one.cppに設定します
  3. 追加されたすべてのライブラリをチェックしました
于 2013-03-14T07:28:26.300 に答える