ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
SMSメッセージフィルタの紹介
SMSメッセージフィルタの拡張機能を使用すると、不明な送信者からのSMSメッセージをフィルタリングすることで、メッセージの管理ができるようになります。このような拡張機能を備えたAppを作成する方法を紹介します。これで、メッセージの内容や他の識別手法に基づいて、SMSメッセージをフォルダやサブフォルダに自動的に振り分けることができるようになります。
リソース
-
ダウンロード
ようこそWWDCへ Ajay Singhです 今日はSMSメッセージ フィルタについて お話ししたいと思います これによってメッセージ フィルタ拡張を作成し 不明な差出人からの SMSメッセージを 分類するのに役立ちます まずSMSメッセージフィルタ の仕組みを説明します 次にiOS 16の 新機能についてお話しします iOS 16 APIを使って メッセージフィルタ拡張の 作成方法の例をご覧いただき その拡張を使用した場合 メッセージに どう現れるかお見せします 最後にインドでの SMSフィルタにおける 改良点をお話しします
まずはSMSメッセージ フィルタについてです 多くの国でSMSメッセージが ビジネスで 顧客への取引に関する通知や マーケティングや お知らせ そして リマインダーに使用されています この例には さまざまな SMSメッセージがあります 短いコードや アルファベットコードや 普通の電話番号があります これでは インボックスが乱雑で 大切な人たちからの 個人メッセージが 見つけにくくなります
iOSは不明な送信者を フィルタできますが 毎日何通も受け取れば 不明な送信者フォルダも すぐに未読メッセージで 一杯になってしまいます 多くの人にとって 自動フィルタは重要です iOSは安全で Sandboxベースの 拡張モデルを提供し 不明な差出人からのメッセージ’を さらに分類します App StoreからSMSフィルタ Appをダウンロードできます インストールすると フィルタをオンできます 「Settings」で「メッセージ」を選び 「Unknown & Spam」で 「Filter Unknown Senders」をオンにし お好みに合わせて SMSフィルタを選びます ここには2つ インストールされていますが 作動できるのは1つだけです
iOS 14以降ならメッセージに 新しいフォルダが現れます 「Transactions」と「Promotions」 そして「Junk」です これらのフォルダによって メッセージがまとめられ 重要なものを検索できます どのフィルタを選んでも メッセージは同じ 分類構成を提供します 「Transactions」と「Promotions」 そして「Junk」です さらに分類を 詳細化したいという みなさんの意見を たくさん受け取りました そこでiOS 16でFilter Classification APIを さらに向上させました SMSメッセージ フィルタ拡張を さらに12のサブカテゴリに 分類できるようになります
SMSフィルタ拡張に 追加されるサブカテゴリは 以下の通りです 新しいカテゴリは「Transactions」と 「Promotions」の トップカテゴリの下につき そこからさらに分類し 体験を向上させることが できます 例えばインドでは 金融取引に関する メッセージを 大量に受け取ります これらには銀行口座の活動や クレジットカードの 使用警告などです これらのメッセージは 「Transactions」下の 「Finance」サブフォルダに 分類されます SMSメッセージフィルタの 流れを見てみましょう 流れは2つに分けられます Configurationと Runtime Classificationです Configurationでは ユーザーは設定で フィルタを選びます これによりiOS 16の 新APIが起動され フィルタがサポートする Capabilitiesを要求します サポートするカテゴリと サブカテゴリで これに応えます この例の場合 フィルタはサブカテゴリの FinanceとOrdersと Couponsを返します iOSはこれらの Capabilitiesを検証し メッセージの インボックスにおいて 適切なフォルダを更新します Runtime Classificationでは 不明な送信者から SMSメッセージを受信する度に iOSはフィルタをクエリし それが属するカテゴリと サブカテゴリを決定します ActionとSub-actionが 使われているのがわかります フィルタはConfigurationで 宣言したCapabilitiesの 1つで応える必要があります するとSMSメッセージは メッセージ内の 対応するサブフォルダに 現れます 簡単なメッセージ フィルタ拡張を作り どのようにAPIが使われ どうメッセージに現れるか 見てみましょう
Xcodeでメッセージ フィルタ拡張を 作成するところから始めます 新しいターゲットを作り Template Selectionに行くと メッセージフィルタ拡張が 選択の1つに現れます メッセージフィルタ拡張を 選んで「Next」をクリックします フィルタに名前をつけ 「Finish」をクリックします
ターゲットが作成され MessageFilterExtension .swiftが必要機能と共に 自動設定されます iOS 16には 新しいAPIハンドルである capabilitiesRequestが あります ILMessageFilterCapa bilitiesQueryResponseを transactional または promotionalSubActionsで 埋めます 最高5つのSubActionsを 指定できます ここではFinanceと Orders Health SubActionsを Transactions下で そしてCouponsとOffersを Promotionsでサポートします フィルタ拡張を作成し インストールします 設定でフィルタを選ぶと メッセージインボックスの サブカテゴリが 宣言したものに更新されます FinanceとOrdersとHealthが All Transactions下に現れ CouponsとOffersが All Promotions下に現れます これらの設定が 確認できたところで SMSメッセージを 受け取った時 iOSに適切なカテゴリを 返せるように シンプルなロジックを 定義しましょう まずmessage body textを queryRequestから抽出します 特定のキーワードが 見つかれば それに相応しいActionと SubActionを返します ここではdebitedの コードを足し filterActionを transactionとして filterSubactionを transactionalFinanceで返し 同様にキーワードの couponが見つかれば promotionとpromotional Couponsが返されます またTransationsと Promotions内の 他のsub classificationsの ロジックも更新できます ただしfilterActionと filterSubActionで 組み合わせを間違えた場合 iOSはSubActionを無効にし Actionだけを受け入れます 例えばもし TransactionをAction Couponsを SubActionとすれば All Transactionsフォルダ のみに配信されます
ここにdebitedという キーワードを含んだ 銀行のメッセージがあり Financeサブフォルダに 分類されました
また別の例では キーワードのcouponを含んだ セールのメッセージがあり これはメッセージ内で Couponsに分類されました
iOS 16ではユーザーの デモグラフィックに最も相応しい サブカテゴリを選択できます 最初の例では All Transactions下に OrdersとRemindersと Healthと Public Servicesと Weatherがあります 次の例では All Transactions下に FinanceとRemindersと HealthとRewardsが 含まれています そしてOffersは All Promotions下です フィルタ拡張は これらのサブカテゴリで 違ったユーザー体験を 提供できます AppleはインドでSMS フィルタを提供していますが iOS 16での改善を使用して 改良を加えました インドのApple SMSフィルタは さらなるサブフォルダを サポートし All Transactions下の FinanceとOrders そしてRemindersがあります 銀行の取引は Financeに現れます 出前や荷物の 配達メッセージは Ordersにまとめられます 重要なイベントやToDoは Remindersに現れます おさらいです ここでは SMSメッセージフィルタで メッセージをTransactionsと PromotionsとJunkに 分類する方法を見ました iOS 16ではメッセージ フィルタ拡張で 12のサブカテゴリに 分類できるようになりました 詳細はこのビデオの リンクにある APIドキュメントを ご覧ください SMSメッセージを 整理するための 創造的なアイデアを 楽しみにしています また みなさんのご意見で SMSメッセージフィルタを さらに向上させましょう
-
-
7:02 - Message filter extension example
func handle(_ capabilitiesRequest: ILMessageFilterCapabilitiesQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterCapabilitiesQueryResponse) -> Void) { let response = ILMessageFilterCapabilitiesQueryResponse() // choose up to five sub-categories supported by the filter response.transactionalSubActions = [.transactionalFinance, .transactionalOrders, .transactionalHealth] response.promotionalSubActions = [.promotionalCoupons, .promotionalOffers] completion(response) }
-
8:16 - Return categories for incoming messages
func handle(_ queryRequest: ILMessageFilterQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterQueryResponse) -> Void) { guard let message = queryRequest.messageBody else { return } let response = ILMessageFilterQueryResponse() switch(message) { case _ where message.contains("debited"): response.filterAction = .transaction response.filterSubAction = .transactionalFinance break case _ where message.contains("coupon"): response.filterAction = .promotion response.filterSubAction = .promotionalCoupons break // update other cases } completion(response) }
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。