Поиск с помощью веб-разметки в Xamarin.iOS
Для приложений, которые предоставляют доступ к содержимому через веб-сайт (не только из приложения), веб-содержимое можно пометить с помощью специальных ссылок, которые будут обходиться Apple и предоставлять глубокие ссылки на приложение на устройстве iOS 9 пользователя.
Если ваше приложение iOS уже поддерживает мобильные глубокие ссылки, а веб-сайт представил глубокие ссылки на содержимое в приложении, веб-обходчик Applebot будет индексировать это содержимое и автоматически добавлять его в свой облачный индекс:
Apple будет отображать эти результаты в результатах поиска в центре внимания и поиска Safari. Если пользователь нажимает на один из этих результатов (и у него установлено приложение), он будет доставлен в содержимое в приложении:
Включение индексирования веб-контента
Существует четыре шага, необходимых для поиска содержимого приложения с помощью веб-разметки:
- Убедитесь, что Apple может обнаруживать и индексировать веб-сайт вашего приложения, определяя его как веб-сайт поддержки или маркетинга в iTunes Подключение.
- Убедитесь, что веб-сайт вашего приложения содержит необходимую разметку для реализации глубокого связывания мобильных устройств. Дополнительные сведения см. в приведенных ниже разделах.
- Включите глубокую обработку ссылок в приложении iOS.
- Добавьте разметку для структурированных данных, представленных веб-сайтом вашего приложения, чтобы обеспечить богатый и привлекательный результат для конечного пользователя. Хотя этот шаг не является строгим обязательным, настоятельно рекомендуется Apple.
В следующих разделах подробно описаны эти действия.
Сделать веб-сайт приложения обнаруживаемым
Самый простой способ найти веб-сайт вашего приложения — использовать его как веб-сайт поддержки или маркетинга при отправке приложения в Apple через iTunes Подключение.
Использование баннеров смарт-приложений
Предоставьте баннер смарт-приложения на веб-сайте, чтобы представить четкую ссылку на приложение. Если приложение еще не установлено, Safari автоматически предложит пользователю установить приложение. В противном случае можно коснуться ссылки на представление , чтобы запустить приложение с веб-сайта. Например, чтобы создать баннер smart App, можно использовать следующий код:
<meta name="AppName" content="app-id=123456, app-argument=http://company.com/AppName">
Дополнительные сведения см. в документации по продвижению приложений Apple с помощью баннеров Smart App.
Использование универсальных ссылок
Новые для iOS 9 универсальные ссылки обеспечивают более эффективную альтернативу смарт-баннерам приложений или существующим пользовательским схемам URL-адресов, предоставив следующее:
- Unique — один и тот же URL-адрес нельзя запросить несколькими веб-сайтами.
- Безопасный — подписанный сертификат необходим для веб-сайта, который гарантирует, что веб-сайт принадлежит вам и действительно связан с приложением.
- Гибкий — конечный пользователь может контролировать, запускает ли URL-адрес веб-сайт или приложение.
- Универсальный — один и тот же URL-адрес можно использовать для определения содержимого веб-сайта и вашего приложения.
Использование картОчек Twitter
Вы можете предоставить подробные ссылки на содержимое приложения с помощью twitter-карты. Например:
<meta name="twitter:app:name:iphone" content="AppName">
<meta name="twitter:app:id:iphone" content="AppNameID">
<meta name="twitter:app:url:iphone" content="AppNameURL">
Дополнительные сведения см. в документации по протоколу Twitter Card Protocol .
Использование ссылок приложений Facebook
Вы можете предоставить подробные ссылки на содержимое приложения с помощью ссылки на приложение Facebook. Например:
<meta property="al:ios:app_name" content="AppName">
<meta property="al:ios:app_store_id" content="AppNameID">
<meta property="al:ios:url" content="AppNameURL">
Дополнительные сведения см. в документации по ссылкам приложений Facebook.
Открытие глубоких ссылок
Необходимо добавить поддержку открытия и отображения глубоких ссылок в приложении Xamarin.iOS. Измените файл AppDelegate.cs и переопределите OpenURL
метод для обработки пользовательского формата URL-адреса. Например:
public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
// Handling a URL in the form http://company.com/appname/?123
try {
var components = new NSUrlComponents(url,true);
var path = components.Path;
var query = components.Query;
// Is this a known format?
if (path == "/appname") {
// Display the view controller for the content
// specified in query (123)
return ContentViewController.LoadContent(query);
}
} catch {
// Ignore issue for now
}
return false;
}
В приведенном выше коде мы ищем URL-адрес, /appname
содержащий и передавая значение query
(123
в этом примере) в пользовательский контроллер представления в нашем приложении, чтобы отобразить запрошенное содержимое пользователю.
Предоставление расширенных результатов структурированными данными
Включив структурированную разметку данных, можно предоставить широкие результаты поиска конечному пользователю, который выходит за рамки просто заголовка и описания. Включите изображения, конкретные данные приложения (например, оценки) и действия для результатов с помощью разметки структурированных данных.
Богатые результаты более привлекательны и могут помочь улучшить рейтинг в облачном индексе поиска, заманив больше пользователей для взаимодействия с ними.
Одним из вариантов предоставления разметки структурированных данных является использование Open Graph. Например:
<meta property="og:image" content="http://company.com/appname/icon.jpg">
<meta property="og:audio" content="http://company.com/appname/theme.m4a">
<meta property="og:video" content="http://company.com/appname/tutorial.mp4">
Дополнительные сведения см. на веб-сайте Open Graph .
Другим общим форматом разметки структурированных данных является формат microdata schema.org. Например:
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<span itemprop="ratingValue">4** stars -
<span itemprop="reviewCount">255** reviews
Те же сведения можно представить в формате JSON-LD в schema.org:
<script type="application/ld+json">
"@content":"http://schema.org",
"@type":"AggregateRating",
"ratingValue":"4",
"reviewCount":"255"
</script>
Ниже показан пример метаданных с веб-сайта, предоставляющий широкие результаты поиска для конечного пользователя:
В настоящее время Apple поддерживает следующие типы схем из schema.org:
- Агрегирование
- ImageObject
- InteractionCount
- Предложения
- Организация
- PriceRange
- Рецепт
- SearchAction
Дополнительные сведения об этих типах схем см. в schema.org.
Предоставление действий со структурированными данными
Определенные типы структурированных данных позволяют результату поиска действовать конечным пользователем. В настоящее время поддерживаются следующие действия:
- Набирая номер телефона.
- Получение направления карты заданному адресу.
- Воспроизведение звукового или видеофайла.
Например, определение действия для набора номера телефона может выглядеть следующим образом:
<div itemscope itemtype="http://schema.org/Organization">
<span itemprop="telephone">(408) 555-1212**
При отображении этого результата поиска пользователю будет отображаться небольшой значок телефона. Если пользователь нажимает значок, будет вызван номер.
Следующий HTML-код добавит действие для воспроизведения звукового файла из результата поиска:
<div itemscope itemtype="http://schema.org/AudioObject">
<span itemprop="contentUrl">http://company.com/appname/greeting.m4a**
Наконец, следующий HTML-код добавит действие, чтобы получить направления из результата поиска:
<div itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">1 Infinite Loop**
<span itemprop="addressLocality">Cupertino**
<span itemprop="addressRegion">CA**
<span itemprop="postalCode">95014**
Дополнительные сведения см. на сайте разработчика поиска приложений Apple.