万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    iOSで下に引っ張って検索する機能なんていいますか?あれを使ったアプリ作れますか?

    iOSオペレーティングシステム(OS)レベルでの「下に引っ張って検索」の機能としては、Spotlight検索が存在します。ユーザーはホーム画面を下にスワイプすることでSpotlight検索バーを開き、アプリ、コンテンツ、ウェブ結果などを検索できます。

    ただし、個々のアプリ内でのプルダウン検索機能は、アプリ開発者が自身のアプリ内で実装するものです。Spotlightのようなシステムレベルの機能にアクセスまたは修正することはできませんが、アプリ内で類似のユーザーエクスペリエンスを作ることは可能です。

    また、開発者はAppleのCore Spotlightフレームワークを使用して、自身のアプリのコンテンツをSpotlight検索に表示させることも可能です。これにより、ユーザーはSpotlightからアプリのコンテンツを直接検索・アクセスできるようになります。

    import CoreSpotlight
    import MobileCoreServices
    
    // ステップ1: コンテンツをインデックス化
    let searchableItemAttributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)
    searchableItemAttributeSet.title = "Facebook"
    searchableItemAttributeSet.contentDescription = "Description of Facebook"
    searchableItemAttributeSet.keywords = ["ふ", "Facebook", "Social Media"]
    
    let searchableItem = CSSearchableItem(uniqueIdentifier: "uniqueIdentifierForFacebook", domainIdentifier: "com.yourapp.domain", attributeSet: searchableItemAttributeSet)
    
    CSSearchableIndex.default().indexSearchableItems([searchableItem]) { error in
        if let error = error {
            print("Error indexing item: \(error.localizedDescription)")
        } else {
            print("Successfully indexed item!")
        }
    }
    
    // ステップ2: AppDelegate.swiftでユーザーアクションをハンドリング
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        if userActivity.activityType == CSSearchableItemActionType {
            if let uniqueIdentifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String {
                // ここでuniqueIdentifierを使って該当のコンテンツにナビゲートするロジックを実装
            }
        }
        return true
    }
    

    https://dev.classmethod.jp/articles/core-spotlight-continuing/