Cách dễ nhất để thêm tệp đính kèm Thông báo lân cận là mặc dù 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 ngôn ngữ gồm 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 (không bắt buộc) cho phép nhắm mục tiêu cụ thể hơn như trình bày dưới đây:
{
"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 nhỏ hơn dài hơn 40 ký tự và phải ngắn hơn 50 ký tự. Lý tưởng nhất là điều này mang lại một 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ặcLearn more about sea otters
. - url – URL của ứng dụng, trang web hoặc dịch vụ.
- nhắm mục tiêu – Các quy tắc không bắt buộc để giới hạn chế độ hiển thị thông báo dựa trên bối cảnh của thiết bị.
Định dạng URL
Tính năng Thông báo lân cận hỗ trợ ba định dạng URL:
URL web
URL web chính xác vậy, chỉ là một URL thông thường. Khi nhận được URL web, người dùng được nhắc mở URL trong trình duyệt mặc định. Không có ứng dụng đặc biệt là bắt buộc. URL web phải sử dụng HTTPS và có định dạng là URL thông thường:
https://www.example.com
Nếu URL web của bạn không kích hoạt thông báo thì có thể là do các nguyên nhân sau:
- Sử dụng HTTP thay vì HTTPS
- Nghiêm cấm liên kết tới cửa hàng ứng dụng, chẳng hạn như play.google.com. Trang web độc lập và cung cấp thông tin hữu ích hoặc hành động trên trang đích.
Ý định của ứng dụng
URL ý định của ứng dụng được dùng để kích hoạt một Ý định trong ứng dụng. Khi ý định của ứng dụng Đã nhận được URL, ứng dụng liên quan sẽ phản hồi các tham số có trong URL, miễn là có bộ lọc ý định tương ứng của ứng dụng. Nếu ứng dụng chưa cài đặt, người dùng sẽ được đưa đến Cửa hàng Play để cài đặt ứng dụng. Sau ứng dụng được cài đặt, sau đó họ có thể khởi chạy ứng dụng và tiếp tục tính năng do nhà phát triển chỉ định. URL ý định của ứ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 Ý định của Android với Chrome. Lưu ý rằng phần bổ sung ý định sẽ không được truyền.
Bạn cũng có thể tạo URL chính xác bằng cách tạo ý định, sau đó sử dụng
intent.toUri(Intent.URI_INTENT_SCHEME)
!
như minh hoạ dưới đây:
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 tuỳ 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 tuỳ 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 đưa người dùng tới một URL cụ thể thay vì đến Cửa hàng Play trong sự kiện ứng dụng chưa được cài đặt bằng cách thêm Tham số S.browser_fallback_url cho ý đị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
Tính năng Thông báo lân cận hỗ trợ 4 quy tắc nhắm mục tiêu:
Ngày
dateStart
và dateEnd
dùng để chỉ định phạm vi ngày mà
tệp đính kèm sẽ hiển thị, ở định dạng ISO 8601.
Ví dụ sau đây hiển thị 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" được dùng để xác định phạm vi thời gian hằng ngày trong mà tệp đính kèm sẽ hiển thị ở định dạng ISO 8601. Ví dụ sau đây cho thấy thông báo từ 9:00 đến 17:00 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" (mọi ngày trong tuần) được dùng để xác định ngày trong tuần khi tệp đính kèm. Định dạng là ISO 8601, từ 1(Thứ Hai) đến 7(Chủ Nhật). Ví dụ sau đây hiển thị 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" là để đặt chế độ hiển thị tệp đính kèm dựa trên ứng dụng trạng thái cài đặt. Cách này chỉ hoạt động với URL Ý định của ứng dụng. Nội dung sau đây ví dụ: hiện thông báo khi ứng dụng được cài đặt.
{
"title": "App not installed",
"url": "intent://host/path#Intent;package=com.example",
"targeting":[
{
"anyOfAppInstallStates": ["NOT_INSTALLED"]
}
]
}
Kết hợp 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. Quy tắc của cùng một đối tượng nhắm mục tiêu được kết hợp với nhau bằng toán tử AND. Ví dụ sau đây hiện 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 của các đối tượng nhắm mục tiêu khác nhau được kết hợp bằng OR. Nội dung sau đây ví dụ hiển thị một 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
Các ứng dụng phải được định cấu hình để xử lý giao thức, máy chủ lưu trữ 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 một phần tử
<intent-filter>
mà
khớp với giao thức, máy chủ lưu trữ và đường dẫn, đồng thời đánh dấu là có thể xem bằng một 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 Xử lý đường liên kết ứng dụng.