Định dạng dữ liệu đính kèm

Cách dễ nhất để thêm tệp đính kèm là Thông báo lân cận là Trang tổng quan Báo hiệu của Google. Ngoài ra, bạn có thể sử dụng API Báo hiệu vùng lân cận và định dạng dữ liệu đính kèm được mô tả bên dưới.

Các tệp đính kèm cho tính năng Thông báo lân cận phải sử dụng không gian tên com.google.nearby và một loại bao gồm mã ngôn ngữ hai chữ cái và hậu tố -debug không bắt buộc.

Tệp đính kèm phải được định dạng bằng JSON. Ví dụ:

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

Định dạng JSON tuỳ ý cho phép nhắm mục tiêu cụ thể hơn như sau:

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

Trong trường hợp:

  • title — Tiêu đề của nội dung. Độ dài của title phải dưới 40 ký tự và phải dưới 50 ký tự. Lý tưởng nhất là phải hiển thị lời kêu gọi hành động cho người dùng. Ví dụ: Order with your phone, skip the line, Set up your thermostat hoặc Learn more about sea otters.
  • url – URL của ứng dụng, trang web hoặc dịch vụ.
  • target — Các quy tắc tuỳ chọn để giới hạn chế độ hiển thị thông báo dựa trên ngữ cảnh thiết bị.

Định dạng URL

Thông báo lân cận hỗ trợ ba định dạng URL:

URL web

URL web chỉ đơn giản là một URL thông thường. Khi nhận được một URL web, người dùng sẽ được nhắc mở URL trong trình duyệt mặc định. Không yêu cầu cấu hình ứng dụng đặc biệt. URL web phải sử dụng HTTPS và có định dạng như một URL thông thường:

  https://www.example.com

Nếu URL web của bạn không kích hoạt một thông báo, nguyên nhân có thể nhất là:

  • Sử dụng HTTP thay vì HTTPS
  • Cấm liên kết với cửa hàng ứng dụng như play.google.com. Trang web phải độc lập và cung cấp trực tiếp thông tin hoặc hành động hữu ích trên trang đích.

Ý định của ứng dụng

URL ý định ứng dụng được dùng để kích hoạt Ý định trong ứng dụng. Khi nhận được URL ý định ứng dụng, ứng dụng liên kết sẽ phản hồi các tham số có trong URL, miễn là có bộ lọc ý định ứng dụng tương ứng. Nếu ứng dụng chưa được cài đặt, người dùng sẽ được chuyển đến Cửa hàng Play để cài đặt ứng dụng. Sau khi cài đặt ứng dụng, người dùng có thể chạy ứng dụng và tiếp tục sử dụng tính năng do nhà phát triển chỉ định. URL của ý định trong ứng dụng được định dạng như sau:

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

Để biết thêm thông tin chi tiết về cách định dạng URL ý định, hãy xem nội dung Ý định trên Android với Chrome. Lưu ý rằng giá trị bổ sung ý định không được truyền.

Bạn cũng có thể tạo URL chính xác bằng cách tạo một ý định, sau đó sử dụng intent.toUri(Intent.URI_INTENT_SCHEME) như sau:

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

Ý định của ứng dụng dạng tự do

Bạn nên sử dụng tùy chọn này cho ý định của ứng dụng không thể khớp với lược đồ, đường dẫn và định dạng tên gói. Chỉ sử dụng tùy chọn này nếu bạn chắc chắn URL ý định của mình được định dạng đúng.

Bạn có thể chọn chuyển người dùng đến một URL được chỉ định thay vì Cửa hàng Play trong trường hợp ứng dụng không được cài đặt bằng cách thêm thông số S.browser_fallback_url vào ý định:

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

Nhắm mục tiêu theo ngữ cảnh

Quy tắc

Thông báo lân cận hỗ trợ bốn quy tắc nhắm mục tiêu:

Ngày

dateStartdateEnd dùng để chỉ định phạm vi ngày có thể xem tệp đính kèm, ở định dạng ISO 8601. Ví dụ sau đây cho thấy thông báo trong tháng 1 năm 2017.:

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

Thời điểm trong ngày

"timeOfDayStart" và "timeOfDayEnd" dùng để chỉ định khoảng thời gian hằng ngày mà tệp đính kèm hiển thị ở định dạng ISO 8601. Ví dụ sau đây cho thấy thông báo từ 9 giờ sáng đến 5 giờ chiều hằng ngày:

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

Ngày trong tuần

"anyOfDaysOfWeek" dùng để chỉ định những ngày trong tuần mà tệp đính kèm hiển thị. Định dạng là ISO 8601, từ 1(thứ Hai) đến 7(Chủ nhật). Ví dụ sau đây cho thấy thông báo vào thứ Bảy và Chủ Nhật:

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

Trạng thái cài đặt ứng dụng

"anyOfAppInstallStates" dùng để đặt chế độ hiển thị tệp đính kèm dựa trên trạng thái cài đặt ứng dụng. Tham số này chỉ áp dụng cho URL Ý định của ứng dụng. Ví dụ sau đây cho thấy thông báo khi ứng dụng chưa được cài đặt.

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

Kết hợp các quy tắc

Đối với mỗi tệp đính kèm, có thể có nhiều quy tắc nhắm mục tiêu. Các quy tắc từ cùng một đối tượng nhắm mục tiêu được AND cùng nhau. Ví dụ sau cho thấy thông báo từ 9 giờ sáng đến 5 giờ chiều vào thứ Bảy và Chủ Nhật.

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

Quy tắc từ các đối tượng nhắm mục tiêu khác nhau là ORed togeter. Ví dụ sau cho thấy thông báo từ 9 giờ sáng đến 5 giờ chiều hằng ngày từ thứ Hai đến thứ Sáu, cùng với cả ngày thứ Bảy và Chủ Nhật.

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

Thêm bộ lọc ý định vào ứng dụng

Bạn phải định cấu hình ứng dụng để xử lý lược đồ, máy chủ và đường dẫn cho URL đã cho. Để thực hiện việc này, bạn phải thêm một phần tử vào AndroidManifest.xml để khai báo <intent-filter> phù hợp với lược đồ, máy chủ và đường dẫn, đồng thời đánh dấu phần tử đó là có thể xem bằng bộ lọc danh mục, như minh hoạ bên dưới:

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

Để tìm hiểu thêm, hãy xem nội dung Xử lý đường liên kết trong ứng dụng.