Самый простой способ добавить вложения «Уведомления о окружении» — через панель инструментов Google Beacon . В качестве альтернативы вы можете использовать API Proximity Beacon и формат данных вложений, описанный ниже.
Вложения для функции уведомлений поблизости должны использовать пространство имен com.google.nearby
и тип, состоящий из двухбуквенного кода языка и необязательного суффикса -debug
.
Вложения должны быть отформатированы с использованием JSON. Например:
{
"title": "Example",
"url": "https://www.example.com"
}
Формат JSON дополнительно допускает более конкретный таргетинг, как показано ниже:
{
"title": "Example",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31",
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00",
"anyOfDaysOfWeek": [1, 2, 3, 4, 5, 6, 7],
"anyOfAppInstallStates": ["INSTALLED", "NOT_INSTALLED"]
}
]
}
Где:
- title — Название контента. Длина
title
должна быть менее 40 символов и должна быть менее 50 символов. В идеале это должно давать пользователю призыв к действию. Например,Order with your phone, skip the line
» , «Set up your thermostat
» или «Learn more about sea otters
» . - URL -адрес — URL-адрес приложения, веб-сайта или службы.
- таргетинг — необязательные правила для ограничения видимости уведомлений в зависимости от контекста устройства.
форматы URL
Ближайшие уведомления поддерживают три формата URL:
Веб-URL
Веб-URL — это именно то, что нужно, просто обычный URL. При получении URL-адреса пользователю предлагается открыть URL-адрес в браузере по умолчанию. Никакой специальной настройки приложения не требуется. Веб-URL-адреса должны использовать HTTPS и отформатированы как обычные URL-адреса:
https://www.example.com
Если ваш веб-адрес не вызывает уведомления, наиболее вероятные причины:
- Использование HTTP вместо HTTPS
- Ссылка на магазин приложений, например play.google.com, запрещена. Веб-страница должна стоять сама по себе и предлагать полезную информацию или действия непосредственно на целевой странице.
Намерение приложения
URL-адреса намерения приложения используются для запуска намерения в приложении. Когда получен URL-адрес намерения приложения, связанное приложение отвечает на параметры, содержащиеся в URL-адресе, при условии, что присутствует соответствующий фильтр намерения приложения. Если приложение не установлено, пользователь переходит в Play Store для установки приложения. После установки приложения они могут запустить приложение и продолжить работу с функцией, указанной разработчиком. URL-адреса намерений приложения форматируются следующим образом:
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;
Дополнительные сведения о форматировании URL-адресов намерений см. в разделе Android-намерения с Chrome . Обратите внимание, что дополнительные намерения не передаются.
Вы также можете правильно построить URL-адрес, создав намерение, а затем используя intent.toUri(Intent.URI_INTENT_SCHEME)
, как показано здесь:
Intent intent = new Intent()
.setData(new Uri.Builder()
.scheme("yourscheme")
.authority("host")
.appendPath("path")
.build())
.setPackage("com.yourapp.ui");
Log.i(TAG, "Use this intent url: " + intent.toUri(Intent.URI_INTENT_SCHEME));
Намерение приложения в свободной форме
Этот параметр следует использовать для целей приложения, которые не могут соответствовать схеме, пути и формату имени пакета. Используйте этот параметр только в том случае, если вы уверены, что ваш URL-адрес намерения правильно отформатирован.
Вы можете отправить пользователя по указанному URL-адресу вместо Play Store, если приложение не установлено, добавив в намерение параметр S.browser_fallback_url:
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;
Контекстный таргетинг
Правила
Ближайшие уведомления поддерживают четыре правила таргетинга:
Датировать
dateStart
и dateEnd
используются для указания диапазона дат, в пределах которого отображается вложение, в формате ISO 8601. В следующем примере показано уведомление за январь 2017 г.:
{
"title": "January 2017",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31"
}
]
}
Время суток
«timeOfDayStart» и «timeOfDayEnd» используются для указания дневного диапазона времени, в котором отображается вложение, в формате ISO 8601. В следующем примере показано уведомление с 9:00 до 17:00 ежедневно:
{
"title": "Work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
День недели
«anyOfDaysOfWeek» используется для указания дней недели, когда вложение отображается. Формат ISO 8601, с 1 (понедельник) до 7 (воскресенье). В следующем примере показано уведомление в субботу и воскресенье:
{
"title": "Weekends",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
}
]
}
Состояние установки приложения
AnyOfAppInstallStates предназначен для настройки видимости вложений на основе состояний установки приложения. Он работает только для URL-адреса намерения приложения . В следующем примере показано уведомление, когда приложение не установлено.
{
"title": "App not installed",
"url": "intent://host/path#Intent;package=com.example",
"targeting":[
{
"anyOfAppInstallStates": ["NOT_INSTALLED"]
}
]
}
Комбинация правил
Для каждого вложения может быть несколько правил таргетинга. Правила одного и того же целевого объекта объединяются по И. В следующем примере показано уведомление с 9:00 до 17:00 по субботам и воскресеньям.
{
"title": "Weekend and work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
"anyOfDaysOfWeek": [6, 7]
}
]
}
Правила из разных объектов таргетинга объединяются по ИЛИ. В следующем примере показано уведомление с 9:00 до 17:00 ежедневно с понедельника по пятницу, а также весь день по субботам и воскресеньям.
{
"title": "Weekend or work time",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
},
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
Добавьте фильтр намерений в свое приложение
Приложения должны быть настроены для обработки схемы, хоста и пути для данного URL-адреса. Для этого вы должны добавить элемент в свой AndroidManifest.xml, чтобы объявить <intent-filter>
, который соответствует схеме, хосту и пути, и пометить его доступным для просмотра с помощью фильтра категории, как показано здесь:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<!-- both categories below are required -->
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:host="host"
android:pathPrefix="/path"
android:scheme="yourscheme"/>
</intent-filter>
Дополнительные сведения см. в разделе Обработка ссылок на приложения .