Format danych załącznika

Najłatwiejszym sposobem dodawania załączników Powiadomień w pobliżu jest używanie Panel Google Beacon. Ewentualnie możesz użyć atrybutu Proximity Beacon API i format danych załącznika opisany poniżej.

Załączniki do funkcji Powiadomień o pobliżu muszą używać protokołu Przestrzeń nazw com.google.nearby i typ składający się z dwuliterowego języka i opcjonalnym sufiksem -debug.

Załączniki powinny być sformatowane w formacie JSON. Na przykład:

    {
      "title": "Example",
      "url": "https://www.example.com"
    }

Format JSON umożliwia opcjonalnie bardziej szczegółowe kierowanie, jak pokazano poniżej:

    {
      "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"]
        }
      ]
    }

Gdzie:

  • title – tytuł treści. Pole title powinno być krótsze musi mieć mniej niż 40 znaków, ale mniej niż 50. To powinno dać wzywa użytkownika do działania. Na przykład: Order with your phone, skip the line, Set up your thermostat lub Learn more about sea otters.
  • url – adres URL aplikacji, witryny lub usługi.
  • kierowanie – opcjonalne reguły ograniczania widoczności powiadomień; w zależności od urządzenia.

Formaty adresów URL

Powiadomienia w pobliżu obsługują 3 formaty adresów URL:

Adres URL

Adres URL strony internetowej to właśnie zwykły adres URL. Po odebraniu adresu URL użytkownik zobaczy adres URL w domyślnej przeglądarce. Brak specjalnej aplikacji jest wymagana. Adresy URL muszą korzystać z protokołu HTTPS i mają format zwykły adres URL:

  https://www.example.com

Jeśli adres URL nie powoduje wyświetlenia powiadomienia, najprawdopodobniej:

  • Używanie protokołu HTTP zamiast HTTPS
  • Nie zezwalamy na podawanie linków do sklepów z aplikacjami, np. play.google.com. Strona internetowa powinny funkcjonować samodzielnie i oferować przydatne informacje lub działania bezpośrednio na stronie docelowej.

Zamiar aplikacji

Adresy URL intencji aplikacji służą do aktywowania intencji w aplikacji. Gdy intencja aplikacji adres URL zostanie odebrane, powiązana aplikacja odpowiada na parametry zawarte w parametrze URL pod warunkiem, że obecny jest odpowiedni filtr intencji aplikacji. Jeśli aplikacja nie jest zainstalowana, użytkownik zostanie przekierowany do Sklepu Play, aby zainstalować aplikację. Po Gdy aplikacja jest zainstalowana, może ją uruchomić i przejść do korzystania z funkcji określone przez programistę. Adresy URL intencji związanych z aplikacjami są sformatowane w ten sposób:

  intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;

Więcej informacji o formatowaniu adresów URL intencji: Intencje związane z Androidem w Chrome Pamiętaj, że dodatkowe informacje o zamiarach nie są przekazywane.

Możesz też poprawnie utworzyć URL, tworząc intencję, a potem za pomocą funkcji intent.toUri(Intent.URI_INTENT_SCHEME) jak tutaj:

    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));

Swobodne intencje w aplikacji

Tej opcji należy używać w przypadku intencji aplikacji, które nie mogą pasować do schematu, ścieżki oraz format nazwy pakietu. Użyj tej opcji tylko wtedy, gdy masz pewność, że adres URL intencji to w poprawnym formacie.

Możesz przekierować użytkownika na określony URL zamiast do Sklepu Play w przypadku, gdy aplikacja nie została zainstalowana, dodając do Parametr S.browser_fallback_url do intencji:

intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
  S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;

Kierowanie kontekstowe

Reguły

Powiadomienia funkcji w pobliżu obsługują cztery reguły kierowania:

Data

dateStart i dateEnd służą do określania zakresu dat, w którym załącznik jest widoczny w formacie ISO 8601. Poniższy przykład pokazuje powiadomienie ze stycznia 2017 roku:

    {
      "title": "January 2017",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startDate": "2017-01-01",
          "endDate": "2017-01-31"
        }
      ]
    }

Pora dnia

„timeOfDayStart” i „timeOfDayEnd” służą do określania dziennego zakresu czasu w obrębie w którym załącznik jest widoczny, w formacie ISO 8601. Ten przykład pokazuje powiadomienie codziennie między 9:00 a 17:00:

    {
      "title": "Work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
        }
      ]
    }

Dzień tygodnia

„anyOfDaysOfWeek” służy do określania dni tygodnia, w których załącznik jest widoczny. Format to ISO 8601, od 1(poniedziałek) do 7(niedziela). Ten przykład pokazuje powiadomienie w sobotę i niedzielę:

    {
      "title": "Weekends",
      "url": "https://www.example.com",
      "targeting":[
        {
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

Stan instalacji aplikacji

"anyOfAppInstallStates" służy do ustawiania widoczności załączników na podstawie aplikacji stanów instalacji. Działa on tylko w przypadku adresu URL intencji aplikacji. Poniżej przykład pokazuje powiadomienie, gdy aplikacja nie jest zainstalowana.

    {
      "title": "App not installed",
      "url": "intent://host/path#Intent;package=com.example",
      "targeting":[
        {
          "anyOfAppInstallStates": ["NOT_INSTALLED"]
        }
      ]
    }

Kombinacja reguł

Każdy załącznik może mieć wiele reguł kierowania. Reguły z są połączone operatorem ORAZ, Przykład poniżej wyświetla powiadomienie między 9:00 a 17:00 w soboty i niedziele.

    {
      "title": "Weekend and work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

Reguły z różnych obiektów kierowania są połączone operatorem LUB. Poniżej Przykład pokazuje powiadomienie między 9:00 a 17:00 codziennie od poniedziałku do piątku. oraz przez cały dzień w soboty i niedziele.

    {
      "title": "Weekend or work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "anyOfDaysOfWeek": [6, 7]
        },
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
        }
      ]
    }

Dodawanie filtra intencji do aplikacji

Aplikacje muszą być skonfigurowane do obsługi schematu, hosta i ścieżki danego adresu URL. Aby to zrobić, musisz dodać element do pliku AndroidManifest.xml, aby zadeklarować tag <intent-filter>, które pasuje do schematu, hosta i ścieżki oraz oznacza je za pomocą kategorii filtr, który widać tutaj:

  <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>

Więcej informacji: Obsługa linków aplikacji