Format danych załącznika

Najłatwiejszym sposobem dodawania załączników powiadomień w pobliżu jest panel Google Beacon. Możesz też użyć interfejsu Proximity Beacon API i formatu danych załącznika opisanego poniżej.

Załączniki do funkcji powiadomień w pobliżu muszą używać przestrzeni nazw com.google.nearby oraz typu składającego się z dwuliterowego kodu języka i opcjonalnego sufiksu -debug.

Załączniki należy sformatować w formacie JSON. Przykład:

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

Format JSON opcjonalnie umożliwia bardziej precyzyjne 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. Długość ciągu title powinna być mniejsza niż 40 znaków i mniejsza niż 50 znaków. Najlepiej, żeby zawierał wezwanie 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 ograniczające widoczność powiadomień w zależności od kontekstu urządzenia.

Formaty adresów URL

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

Adres URL

Adres URL strony internetowej jest właśnie zwykłym adresem URL. Po otrzymaniu adresu URL użytkownik widzi prośbę o jego otwarcie w domyślnej przeglądarce. Nie musisz niczego konfigurować. Adresy URL muszą korzystać z protokołu HTTPS i sformatować je pod normalny adres:

  https://www.example.com

Jeśli adres URL Twojej witryny nie wywołuje powiadomienia, najprawdopodobniej:

  • Używanie protokołu HTTP zamiast HTTPS
  • Łączenie z sklepem z aplikacjami, takimi jak play.google.com, jest zabronione. Strona internetowa powinna wyświetlać się samodzielnie i zawierać przydatne informacje lub działania bezpośrednio na stronie docelowej.

Zamiar aplikacji

Adresy URL intencji w aplikacji służą do wywoływania intencji w aplikacji. Po otrzymaniu adresu URL intencji aplikacji powiązana z nimi odpowiedź odpowiada parametrom w adresie URL, o ile występuje odpowiedni filtr intencji aplikacji. Jeśli aplikacja nie jest zainstalowana, użytkownik przechodzi do Sklepu Play, aby ją zainstalować. Po zainstalowaniu może uruchomić swoją aplikację i przejść do funkcji określonej przez programistę. Adresy URL dotyczące intencji aplikacji mają następujący format:

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

Więcej informacji o formatowaniu adresów URL intencji znajdziesz w artykule na temat intencji Androida w Chrome. Dodatki do intencji nie są pomijane.

Możesz też prawidłowo utworzyć URL, tworząc intencję, a następnie używając intent.toUri(Intent.URI_INTENT_SCHEME) w taki sposób:

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

Niestandardowi odbiorcy o podobnych zamiarach

Tej opcji należy używać w przypadku intencji aplikacji, które nie są zgodne ze schematem, ścieżką i formatem nazwy pakietu. Użyj tej opcji tylko wtedy, gdy masz pewność, że URL intencji jest prawidłowo sformatowany.

Jeśli nie zainstalujesz aplikacji, możesz dodać użytkownika do określonego adresu URL zamiast do Sklepu Play, dodając do niego parametr 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;

Kierowanie kontekstowe

Reguły

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

Data

dateStart i dateEnd pozwalają określić zakres dat, w którym załącznik jest widoczny, w formacie ISO 8601. Poniższy przykład pokazuje powiadomienie w styczniu 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ślenia zakresu czasu, w którym załącznik jest widoczny, w formacie ISO 8601. Poniższy przykład pokazuje powiadomienie codziennie od 9:00 do 17:00:

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

Dzień tygodnia

Wartość „anyOfDaysOfWeek” służy do określenia dni tygodnia, w których załącznik jest widoczny. Format to ISO 8601, od 1(poniedziałek) do 7(niedziela). Poniższy przykład pokazuje powiadomienie w soboty i niedziele:

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

Stan instalacji aplikacji

Pole „anyOfAppInstallStates” służy do ustawiania widoczności załączników na podstawie stanów instalacji aplikacji. Działa tylko w przypadku adresu URL intencji aplikacji. Poniższy 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 tego samego obiektu kierowania są połączone operatorem ORAZ. Na przykładzie widać 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ą operatorem LUB. Przykład poniżej pokazuje powiadomienie wyświetlane codziennie od poniedziałku do piątku, w godzinach 9:00–17:00, oraz 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 pod kątem obsługi schematu, hosta i ścieżki w przypadku danego adresu URL. Aby to zrobić, musisz dodać element w pliku AndroidManifest.xml, aby zadeklarować element <intent-filter> pasujący do schematu, hosta i ścieżki oraz oznaczyć go jako możliwy do przeglądania za pomocą filtra kategorii, jak pokazano 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 znajdziesz w artykule Obsługa linków aplikacji.