問題
iOSアプリでクリップボード機能を使う場合、フォーカス復帰時に「〇〇に△△からペーストしようとしています」という許可ダイアログが表示されます。
このダイアログが出るタイミングが遅く(アプリ表示から約1秒後)、また、毎回出るのでウザいです。
原因
このダイアログはiOS 16で導入されたプライバシー機能で、アプリがクリップボードを読む時に自動的に出ます。
ダイアログ表示のタイミングはiOS側が制御しており、アプリ側からは短縮できません。
解決策
ユーザーに最も効果的なのは「設定変更」です。iOS 16.1以降、設定アプリから「ほかのアプリからの貼り付け」を「許可」に変更するとダイアログは出なくなります。
実装方法
クリップボード読取が成功した回数をカウントし、4回目に設定方法の案内を表示します。
手順:
クリップボード読取成功時にカウント増加
カウントが4に達したら案内Panelを表示
一度表示したら二度と出さない(PlayerPrefsで管理)
設定案内のテキスト:
毎回の確認を消すには:
1.iPhone(iPad)の「設定」を開く
2.下にスクロールして「アプリ」をタップ
3.一覧からこのアプリ名をタップ
4.「ほかのアプリからの貼り付け」をタップ
5.「確認/拒否/許可」の中から「許可」を選ぶ
重要な前提
対象iOS
iOS 16.1以降(ユーザー設定が可能になったバージョン)
ダイアログの表示条件
そのアプリでペースト許可ダイアログが一度でも出た後のみ設定項目が表示される
アプリ更新時
ユーザーが設定を「許可」に変更していれば、アプリ更新後も保持される