Xamarin.iOS'ta Uygulama Arama Geliştirmeleri
Bu makale, Apple'ın iOS 10'da Uygulama Arama'da yaptığı iyileştirmeleri ve bunları Xamarin.iOS'ta nasıl uygulayacaklarını kapsar.
iOS 10'da Apple, Uygulama Arama'da Crowdsourced Deep-Linking, In-App Searching, Search Continuation ve Visualization of Validation Results gibi çeşitli geliştirmeler yapmıştır. Bu makalede, bu özelliklerin bir Xamarin.iOS uygulamasında uygulanması ele alınacaktır.
Uygulama Arama Geliştirmeleri Hakkında
iOS 10'daki Temel Öne Çıkanlar, Uygulama Arama'da aşağıdakiler gibi çeşitli geliştirmeler sağlar:
- Crowdsourced Deep-Link Popülerliği (değişiklik gizliliğiyle) - Arama sonuçlarında derin bağlantılı uygulama içeriğini tanıtmanın bir yolunu sağlar.
- Uygulama İçi Arama - Posta, İletiler ve Notlar uygulamalarının çalışma şekline benzer uygulama içi Spotlight arama özelliği sağlamak için yeni
CSSearchQuery
sınıfı kullanın. - Arama Devamı - Kullanıcının Spotlight veya Safari'de arama başlatmasına, ardından bir uygulama açıp aramaya devam etmesine izin verir.
- Doğrulama Sonuçlarının Görselleştirmesi - Apple'ın Uygulama Arama API'sini Doğrulama Aracı artık testleri önceden oluştururken bir web sitesinin işaretlemesinin ve derin bağlantının görsel bir gösterimini görüntüler.
- İleti Uygulaması Görüntü Paylaşımı - İletilerde paylaşım için sağlanan popüler uygulama içi görüntülerin (İleti Uygulaması Uzantısı aracılığıyla) Spotlight aramalarında görünmesini sağlar.
Aşağıdaki bölümlerde bu konular daha ayrıntılı olarak ele alınacaktır.
Crowdsourced Deep-Link Popülerliği
iOS 10, bir uygulamadaki popüler derin bağlantıların kullanıcı tarafından takip edilen sıklığını saymak için bir mekanizma sağlar ve bu bilgileri kullanarak arama sonuçlarında uygulama içeriğinin derecelendirmesini artırırken, Değişiklik Gizliliği'ni kullanarak kullanıcının kimliğini korumaya devam eder.
Derin bağlantı URL'leri sağlamak için nesneleri kullanan NSUserActivity
ve özelliği olarak true
ayarlanmış olan uygulamalar için iOS 10, Apple'ın sunucularına Değişiklik Gizliliği Karmalarının bir alt kümesini EligibleForPublicIndexing
gönderir. Bu bilgiler daha sonra arama sonuçlarında popüler uygulama içi içeriği yükseltmek için kullanılır.
Xamarin.iOS uygulamasında ayrıntılı bağlantı uygulama hakkında daha fazla bilgi için lütfen NSUserActivity ile arama belgelerimize bakın.
Uygulama İçi Arama
Yeni CSSearchQuery sınıfını uygulayarak bir uygulama, kullanıcının uygulamadan ayrılmasına gerek kalmadan (Posta, İletiler ve Notlar uygulamasının çalışma şekline benzer şekilde) içeriği kendi içinde bulmak için Spotlight'ın arama ve eşleştirme kuralı teknolojisini sağlayabilir.
Genellikle, destekleyen CSSearchQuery
uygulamaların kendi ayrı arama dizinlerini tutması gerekmez.
Arama Devamı
iOS 9'da Apple, kullanıcıların hem Spotlight hem de Safari arama arabirimlerini kullanarak bu içeriği aramasına olanak sağlamak üzere bir uygulama içindeki içeriği derinlemesine beğenmek için Arama API'lerini (Çekirdek Öne Çıkanlar NSUserActivity
ve web işaretlemesi gibi) kullanıma sundu. Daha fazla ayrıntı için Yeni Arama API'leri belgelerimize bakın.
iOS 10'da Apple, kullanıcının Spotlight veya Safari'de arama başlatmasına ve ardından uygulamayı açtığında aramaya devam etmesine izin vererek bu özelliğin üzerine inşa eder.
Bu özelliği uygulamak için uygulamanın Info.plist
dosyasını düzenleyin, Boole türünde bir anahtar ekleyin CoreSpotlightContinuation
ve değerini olarak YES
ayarlayın:
Bir arama sonucuna ()NSUserActivity
devam eden kullanıcıya yanıt vermek için dosyayı düzenleyin AppDelegate.cs
ve yöntemini geçersiz kılın ContinueUserActivity
. Örneğin:
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;
}
Bu kod sorgu devamlılığı eylem türünü ()userActivity.ActivityType == CSSearchQuery.ContinuationActionType
arar ve ardından sınıfın kullanıcı bilgileri sözlüğünden (userActivity.UserInfo.KeyForValue(CSSearchQuery.QueryString)
) kullanıcının geçerli sorgusunu NSUserActivity
okur. Buradan, kullanıcının aramasına devam etmek için uygulamanın işlem yapması gerekir.
Xamarin.iOS uygulamasında aramalarla çalışma hakkında daha fazla bilgi için lütfen Çekirdek Spotu ile Arama belgelerimize bakın.
Doğrulama Sonuçlarının Görselleştirmesi
Apple'ın Uygulama Arama API'si Doğrulama Aracı artık testleri önceden oluştururken bir web sitesinin işaretlemesinin ve derin bağlantının (Schema.org'de tanımlanan işaretlemeler dahil) görsel bir gösterimini görüntüler.
Bir geliştirici, Doğrulama Aracı'nı kullanarak Applebot Web Gezgini'nin site için başlık, açıklama, URL ve desteklenen diğer öğeler gibi dizine eklediği bilgileri görebilir.
Web İşaretleme ile çalışma hakkında daha fazla bilgi için lütfen Web İşaretleme ile Bağlantı belgelerimize bakın.
İleti Uygulaması Görüntü Paylaşımı
İleti Uygulaması Uzantısı İletiler'de paylaşılacak görüntüler sağlıyorsa, uzantı kullanıcının uygulamadan çıkmak zorunda kalmadan mesajlar içinden popüler görüntüler için Spotlight aramaları gerçekleştirmesine izin verecek şekilde yapılandırılabilir.
Bu özelliği etkinleştirmek için aşağıdakileri yapın:
- İleti Uygulaması Uzantısı oluşturun.
com.apple.developer.associated-domains
öğesini uygulamanın yetkilendirmelerine ekleyin ve İleti Uygulaması Uzantısı'nın paylaştığı görüntüleri barındıran web etki alanlarının listesini ekleyin. Her etki alanı için hizmeti belirtinspotlight-image-search
.- Görüntüleri barındıran web sitesine bir
apple-app-site-association
dosya ekleyin. Bu dosya hizmet içinspotlight-image-search
bir sözlük içerir ve uygulama kimliğini içerir; bu, Ekip Kimliği veya Uygulama Kimliği ön eki ve ardından Paket Kimliği'dir. Dosya, Spotlight tarafından dizine eklenecek ve popüler görüntü aramalarına dahil edilecek en fazla 500 yol ve desen içerebilir. Daha fazla bilgi için lütfen Apple'ın İlişkilendirme Dosyası Oluşturma ve Karşıya Yükleme belgelerine bakın. - Applebot'un web sitelerinde gezinmesine izin verin. Lütfen Apple'ın Applebot Hakkında belgelerine bakın.
Daha fazla ayrıntı için İleti Uygulaması Tümleştirme belgelerimize bakın.
Özet
Bu makale, Apple'ın iOS 10'da Uygulama Arama'da yaptığı geliştirmeleri ve bunları Xamarin.iOS'ta nasıl uygulayacaklarını ele almıştır.