Xamarin.iOS 中的應用程式搜尋增強功能

本文涵蓋 Apple 在 iOS 10 中對應用程式搜尋所做的增強功能,以及如何在 Xamarin.iOS 中實作它們。

在 iOS 10 中,Apple 已對應用程式搜尋進行多項增強功能,例如眾包深層連結、應用程式內搜尋、搜尋接續和驗證結果的視覺效果。 本文將討論如何在 Xamarin.iOS 應用程式中實作這些功能。

關於應用程式搜尋增強功能

iOS 10 中的核心焦點提供數個應用程式搜尋的增強功能,例如:

  • Crowdsourced Deep-Link 熱門度 (具有差異隱私權) - 提供在搜尋結果中推廣深層連結應用程式內容的方法。
  • 應用程式內搜尋 - 使用新 CSSearchQuery 類別提供應用程式內焦點搜尋功能,類似於郵件、訊息和記事應用程式的運作方式。
  • 搜尋接續 - 允許使用者在焦點或 Safari 中開始搜尋,然後開啟應用程式並繼續搜尋。
  • 驗證結果 的視覺效果 - Apple 的應用程式搜尋 API 驗證工具 現在會顯示預先格式化測試時網站標記和深層連結的視覺表示法。
  • 訊息應用程式影像共用 - 允許在 [訊息] 中提供的熱門應用程式內影像,以在 [訊息應用程式延伸模組] 中顯示於焦點搜尋中。

下列各節將更詳細地討論這些主題。

iOS 10 提供一種機制來計算熱門深層連結至應用程式的頻率,後面接著使用者,並使用這項資訊來改善應用程式內容在搜尋結果中的排名,同時仍使用 差異隱私權保護使用者的身分識別。

對於使用 NSUserActivity 物件提供深層連結 URL,並將 EligibleForPublicIndexing 屬性設定true為 的應用程式,iOS 10 會將差異隱私權哈希子集提交至 Apple 的伺服器。 這項信息接著會用來在搜尋結果中推廣熱門的應用程式內內容。

如需在 Xamarin.iOS 應用程式中實作深層連結的詳細資訊,請參閱使用 NSUserActivity 搜尋檔。

應用程式內搜尋

藉由實作新的 CSSearchQuery 類別,應用程式可以提供 Spotlight 的搜尋和比對規則技術來尋找本身內的內容,而不需要使用者離開應用程式(類似於 Mail、Messages 和 Notes 應用程式的運作方式)。

通常,支援 CSSearchQuery 的應用程式不需要維護自己的個別搜尋索引。

搜尋接續

在iOS 9中,Apple引進了搜尋 API(例如核心焦點 NSUserActivity 和 Web 標記)來提供應用程式內內容的深入探索,讓用戶能夠同時使用焦點和 Safari 搜尋介面來搜尋該內容。 如需詳細資訊,請參閱我們的 新搜尋 API 檔。

在 iOS 10 Apple 中,允許使用者在焦點或 Safari 中啟動搜尋功能,然後在開啟應用程式時繼續搜尋。

若要實作這項功能,請編輯應用程式的Info.plist檔案、新增CoreSpotlightContinuation布林類型的索引鍵,並將其值設定為 YES

若要回應用戶繼續搜尋結果 (NSUserActivity),請編輯 AppDelegate.cs 檔案並覆寫 ContinueUserActivity 方法。 例如:

public override bool ContinueUserActivity (UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{

    // Take action based on the activity type
    switch (userActivity.ActivityType) {
    case "com.xamarin.platform":
        // Restore the state of the app here...
        break;
    default:
        if (userActivity.ActivityType == CSSearchQuery.ContinuationActionType) {
            var search = userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString);
            // Continue user's search here...
        }
        break;
    }

    return true;
}

此程式代碼會尋找查詢接續動作類型 (userActivity.ActivityType == CSSearchQuery.ContinuationActionType),然後從 NSUserActivity 類別的使用者資訊字典 (userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString)) 讀取使用者的目前查詢。 從這裡開始,應用程式必須採取動作,才能繼續使用者的搜尋。

如需在 Xamarin.iOS 應用程式中使用搜尋的詳細資訊,請參閱使用 核心焦點 搜尋檔。

驗證結果的視覺效果

Apple 的應用程式 搜尋 API 驗證工具 現在會在預先格式化測試時,顯示網站的標記和深層連結的視覺表示法(包括如在 Schema.org 定義的標記)。

藉由使用驗證工具,開發人員可以看到Applebot Web編目程式已針對網站編制索引的資訊,例如標題、描述、URL和任何其他支援的元素。

如需使用 Web 標記的詳細資訊,請參閱我們的 Seach with Web Markup 檔。

訊息應用程式影像共用

如果訊息應用程式延伸模組提供影像以在訊息中共用,則可以將擴充功能設定為允許使用者在訊息內執行焦點搜尋熱門影像,而不需要離開應用程式。

若要啟用此功能,請執行下列動作:

  1. 建立訊息應用程式延伸模組。
  2. com.apple.developer.associated-domains將 新增至應用程式的權利,並包含裝載訊息應用程式延伸模組所共用影像的Web網域清單。 針對每個網域,指定 spotlight-image-search 服務。
  3. apple-app-site-association將檔案新增至裝載映像的網站。 此檔案包含服務的字典 spotlight-image-search ,並包含應用程式的標識碼,也就是 Team ID 或應用程式識別碼前置詞,後面接著套件組合識別符。 檔案最多可包含 500 個路徑和模式,這些路徑和模式將由 Spotlight 編製索引,並包含在熱門影像搜尋中。 如需詳細資訊,請參閱Apple的 建立和上傳關聯檔案 檔。
  4. 允許Applebot編目網站。 請參閱 Apple 的 關於 Applebot 檔。

如需詳細資訊,請參閱我們的 訊息應用程式整合 檔。

摘要

本文涵蓋 Apple 在 iOS 10 中對應用程式搜尋所做的增強功能,以及如何在 Xamarin.iOS 中實作它們。