Format Data Lampiran

Cara termudah untuk menambahkan lampiran Notifikasi Di Sekitar adalah melalui Dasbor Google Beacon. Atau, Anda dapat menggunakan Proximity Beacon API dan format data lampiran yang dijelaskan di bawah.

Lampiran untuk fitur Notifikasi Sekitar harus menggunakan Namespace com.google.nearby, dan jenis yang terdiri dari bahasa dua huruf kode, dan akhiran -debug opsional.

Lampiran harus diformat menggunakan JSON. Contoh:

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

Format JSON secara opsional memungkinkan penargetan yang lebih spesifik seperti yang ditunjukkan di bawah ini:

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

Dengan keterangan:

  • title — Judul konten. Panjang title harus lebih pendek dari 40 karakter dan harus kurang dari 50 karakter. Idealnya, ini harus memberikan pesan ajakan kepada pengguna. Misalnya Order with your phone, skip the line, Set up your thermostat, atau Learn more about sea otters.
  • url — URL untuk aplikasi, situs, atau layanan.
  • penargetan — Aturan opsional untuk membatasi visibilitas notifikasi berdasarkan konteks perangkat.

Format URL

Notifikasi Langsung mendukung tiga format URL:

URL Web

URL web adalah URL yang sama persis, hanya URL biasa. Ketika URL web diterima, pengguna diminta untuk membuka URL di browser default. Tidak ada aplikasi khusus diperlukan. URL web harus menggunakan HTTPS, dan diformat sebagai URL biasa:

  https://www.example.com

Jika URL web Anda tidak memicu notifikasi, penyebab yang paling mungkin adalah:

  • Menggunakan HTTP, bukan HTTPS
  • Menautkan ke app store seperti play.google.com dilarang. Halaman web harus berdiri sendiri dan memberikan informasi atau tindakan yang berguna atas halaman landing secara langsung.

Intent aplikasi

URL intent aplikasi digunakan untuk memicu Intent di aplikasi. Saat intent aplikasi URL diterima, aplikasi terkait akan merespons parameter yang terdapat dalam URL, asalkan filter intent aplikasi yang sesuai ada. Jika aplikasi tidak diinstal, pengguna akan diarahkan ke Play Store untuk menginstal aplikasi. Sesudah aplikasi sudah diinstal, mereka kemudian dapat meluncurkan aplikasi dan melanjutkan ke fitur yang ditentukan oleh developer. URL intent aplikasi diformat sebagai berikut:

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

Untuk detail selengkapnya tentang memformat URL intent, lihat Intent Android dengan Chrome. Perhatikan bahwa tambahan intent tidak diteruskan.

Anda juga bisa membuat URL dengan benar dengan membuat intent, lalu menggunakan intent.toUri(Intent.URI_INTENT_SCHEME), sebagaimana ditunjukkan di sini:

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

Intent aplikasi bentuk bebas

Opsi ini harus digunakan untuk intent aplikasi yang tidak bisa cocok dengan skema, jalur, dan format nama paket. Hanya gunakan opsi ini jika Anda yakin URL intent Anda diformat dengan benar.

Anda dapat memilih untuk mengirim pengguna ke URL tertentu alih-alih ke Play Store di kejadian aplikasi tidak diinstal dengan menambahkan Parameter S.browser_fallback_url ke intent:

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

Penargetan konteks

Aturan

Notifikasi Langsung mendukung empat aturan penargetan:

Tanggal

dateStart dan dateEnd digunakan untuk menentukan rentang tanggal lampiran terlihat, dalam format ISO 8601. Contoh berikut menunjukkan notifikasi selama Januari 2017.:

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

Waktu

"TimeOfDayStart" dan "timeOfDayEnd" digunakan untuk menentukan rentang waktu harian dalam tempat lampiran terlihat, dalam format ISO 8601. Contoh berikut menampilkan notifikasi dari pukul 09.00 hingga 17.00 setiap hari:

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

Hari

"anyOfDaysOfWeek" digunakan untuk menentukan hari lampiran terlihat. Formatnya adalah ISO 8601, dari 1(Senin) hingga 7(Minggu). Contoh berikut menampilkan notifikasi pada hari Sabtu dan Minggu:

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

Status penginstalan aplikasi

"anyOfAppInstallStates" adalah untuk menyetel visibilitas lampiran berdasarkan aplikasi status penginstalan. Ini hanya berfungsi untuk URL Intent aplikasi. Hal berikut contoh menunjukkan notifikasi saat aplikasi tidak diinstal.

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

Kombinasi aturan

Untuk setiap lampiran, dapat terdapat beberapa aturan penargetan. Aturan dari objek penargetan yang sama digunakan bersamaan. Contoh berikut menampilkan notifikasi dari pukul 09.00 hingga 17.00 pada hari Sabtu dan Minggu.

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

Aturan dari berbagai objek penargetan akan diberi nilai ORed. Hal berikut contoh menunjukkan notifikasi dari pukul 09.00 hingga 17.00 setiap hari Senin sampai Jumat, ditambah sepanjang hari pada hari Sabtu dan Minggu.

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

Menambahkan filter intent ke aplikasi

Aplikasi harus dikonfigurasi untuk menangani skema, host, dan jalur untuk URL yang diberikan. Untuk melakukannya, Anda harus menambahkan elemen dalam AndroidManifest.xml untuk mendeklarasikan <intent-filter> yang mencocokkan skema, {i>host<i}, dan jalur dan menandainya sebagai dapat dijelajahi dengan kategori seperti yang ditunjukkan di sini:

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

Untuk mempelajari lebih lanjut, lihat Menangani Link Aplikasi.