iOS 14では、アプリがユーザーのクリップボードのコンテンツにアクセスするたびに、画面上部に警告が表示されます。
アプリがクリップボードのコンテンツにアクセスするのは、その中のコンテンツに気になる点があるかどうか知りたい場合があるためです。
この UIPasteboard.general
の detectPatterns
機能を利用すると、クリップボードのコンテンツが次のカテゴリのいずれかに該当するかどうか検出することができます。
- 数字
.number
- URL
.probableWebURL
- ウェブ検索クエリー
.probableWebSearch
detectPatterns
がコンテンツのタイプを判断できない時はいつも .probableWebSearch
と報告しているようです。
完了したGithubのデモプロジェクトはこちらから入手できます。
ペーストボードのコンテンツを検出
UIPasteboard.general.detectPatterns(for: [.number, .probableWebSearch, .probableWebURL]) { result in
switch result {
case .success(let patterns):
if patterns.contains(.number) {
// おそらく数字
} else if patterns.contains(.probableWebSearch) {
// おそらくウェブ検索クエリー
} else if patterns.contains(.probableWebURL) {
// おそらくURL
}
case .failure(let error):
print(error.localizedDescription)
}
}
UIPasteboard.general.detectPatterns
を使用すると、アラートが表示されません。
興味のあるコンテンツがペーストボードに含まれていることがわかったら、実際のペーストボードのコンテンツにアクセスできます。(たとえば、お使いのアプリが、ペーストボードからURLをコピーすることだけに興味がある場合、まず検出を実行して、URLがペーストボードに含まれていたらペーストボードへアクセスできます)
デモアプリケーション
こちらがGithub上でどのように機能するのかをより良く把握していただけるよう、デモアプリケーションのダウンロードが可能です。
デモアプリケーション内には2つのボタンがあり、パターンを検出
のボタンではペーストボードの内容のタイプが表示され、クリップボードの内容を取得
のボタンではペーストボードの内容がフェッチされます。
⭐️ こちらのウェブページにアクセスすると、私の公開されているQiitaの記事のリストをカテゴリー別にご覧いただけます。