※ios13以上の方向けの記事です。
cordova-plugin-barcodeScannerプラグインを導入したアプリでiphoneでスキャンを
しよう!→やっぱりやーめたと下にスワイプをするとスキャンを取りやめることができます。
ですがここでスワイプキャンセルをして再度スキャンをしようとすると、Scan is already in progressと
表示されスキャンに失敗します。
質の悪いことに、androidでいうキャンセル扱いにはならずスキャン失敗時の処理まで辿りつきません。
調べてみるとプラグイン自身のバグらしく、公式でfixが上がっていたのでそれに合わせて修正します。
xcodeを開いて左の一覧からpluginの中から「CDVBarcodeScanner」という名前ファイルを探す。
365行目くらい(self.viewController.orientationDelegateが書いてあるところの下ら辺)に
以下のコードを追加
if(@available(ios 13.0, *)){
self.viewController.modalInPresentation = YES;
}
105行目に以下のコードを追加
@property (nonatomic, getter=isModalInPresentation) BOOL modalInPresentation;
こちらは自動で追加されたと思いますが一応。
モーダルの制御をするようネイティブアプリに指示するというわけですね。
これでスワイプを制御することができます。次のバージョンではちゃんと治っているのでしょうか。