前提・実現したいこと
Xamarin.Formsでアプリ開発をしています。
iPadのiOSバージョンを13.1.2に更新したところ、印刷機能が使えなくなりました。
iOS13のiPhoneでは問題なくプリンタリストが表示されました。
発生している問題・エラーメッセージ
WARNING: Calling -[UIPrinterPickerController presentAnimated:completionHandler:] on iPad
該当のソースコード
C#
1public async Task PrintImageAsync(string filePath) 2{ 3 try 4 { 5 // 画像ファイルパス設定 6 _filePath = filePath; 7 8 // インスタンス化 9 var printerPicker = UIPrinterPickerController.FromPrinter(null); 10 11 // ★この処理後、プリンタリストが画面に表示されない 12 // プリンタリストをモーダル表示 13 var result = await printerPicker.PresentAsync(true); 14 15 // プリンタを選択したか確認 16 var printer = result.PrinterPickerController.SelectedPrinter; 17 if (printer != null) 18 { 19 // 印刷実行 20 Debug.WriteLine($"プリンタURL:{printer.Url}"); 21 var retFlag = await PrintToPrinterAsync(_filePath, printer); 22 if (!retFlag) 23 { 24 var errMsg = "印刷に失敗しました。"; 25 throw new Exception(errMsg); 26 } 27 } 28 else 29 { 30 Debug.WriteLine("プリンタが選択されていません。"); 31 } 32 } 33 catch (Exception ex) 34 { 35 var alertController = UIAlertController.Create(AppInfo.Name, ex.Message, UIAlertControllerStyle.Alert); 36 alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); 37 await UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewControllerAsync(alertController, true); 38 } 39}
試したこと
下記を試してみましたが、結果変わらずでした。
- PresentAsyncをPresentに変更
- Xamarin.Formsを4.2.0.848062に更新
補足情報(FW/ツールのバージョンなど)
Visual Studio 2019
Xamarin.Forms 4.1.0.778454
iPad iOS13.1.2
なにか情報をお持ちの方は回答よろしくお願いします。
追記1
下記の記事を見つけました。
WARNING: Calling -[UIPrinterPickerController presentAnimated:completionHandler:] on iPad
iPadからの印刷機能で WARNING: Calling -[UIPrinterPickerController presentAnimated:completionHandler:] on iPad
Presentではなく、PresentFromRectを使用すれば良いみたいですが、viewの設定方法がわからず進まない状態です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。