新增鄰近分享通知附件最簡單的方法, Google Beacon 資訊主頁。 此外,您可以使用 Proximity Beacon API 和下方所述的附件資料格式。
鄰近分享通知功能的附件必須使用
com.google.nearby
命名空間,以及由兩個字母組成的類型
以及選用的 -debug
後置字串
請使用 JSON 格式化附件。例如:
{
"title": "Example",
"url": "https://www.example.com"
}
JSON 格式 (選用) 可讓您指定更明確的指定目標,如下所示:
{
"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"]
}
]
}
在此情況下:
- title - 內容標題。
title
長度不得超過title
個字元 ,且不得超過 50 個字元。理想情況下 當使用者加入行動號召例如Order with your phone, skip the line
Set up your thermostat
或Learn more about sea otters
。 - url - 應用程式、網站或服務的網址。
- 指定目標 — 限制通知顯示設定的選用規則 卻會根據裝置情境顯示內容
網址格式
「鄰近分享通知」支援三種網址格式:
網址
網址就是正常的網址。收到網址時, 系統會提示使用者在預設瀏覽器中開啟該網址。沒有特殊應用程式 必須選取設定網址必須使用 HTTPS,且格式為 一般網址:
https://www.example.com
如果網址無法觸發通知,最有可能的原因如下:
- 使用 HTTP 而非 HTTPS
- 禁止連結至應用程式商店,例如 play.google.com。網頁 本身,以及 。
應用程式意圖
應用程式意圖網址是用來在應用程式中觸發意圖。應用程式意圖時 收到網址後,相關聯的應用程式就會回應 網址 (前提是有對應的應用程式意圖篩選器)。如果應用程式 未安裝,系統會將使用者帶往 Play 商店安裝應用程式。更新後 安裝完成後,使用者即可啟動應用程式並繼續使用功能 開發人員指定的設定應用程式意圖網址的格式如下:
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;
如要進一步瞭解如何設定意圖網址的格式,請參閱 搭配 Chrome 使用 Android 意圖。 請注意,系統不會傳送意圖額外項目。
您也可以建立意圖,然後使用
intent.toUri(Intent.URI_INTENT_SCHEME)
、
如下所示:
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));
任意形式的應用程式意圖
這個選項應用於不符合配置、路徑、 以及套件名稱的格式除非您確定意圖網址是 格式正確
您可以選擇將使用者導向特定網址,而非位於 Play 商店的網址 加入 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;
內容比對
規則
Nearby Notifications 支援四種指定目標規則:
日期
dateStart
和 dateEnd
可用來指定日期範圍
附件會以 ISO 8601 格式顯示。
以下範例顯示 2017 年 1 月的通知:
{
"title": "January 2017",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31"
}
]
}
時段
「timeOfDayStart」和「timeOfDayEnd」用於指定 附件,格式為 ISO 8601 格式。 以下範例顯示每天上午 9 點到下午 5 點的通知:
{
"title": "Work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
星期幾
「anyOfDaysOfWeek」可用來指定 附件為顯示狀態。格式為 ISO 8601,從 1(週一) 到 7(週日)。 以下範例顯示週六和週日的通知:
{
"title": "Weekends",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
}
]
}
應用程式安裝狀態
"anyOfAppInstallStates"主要用於根據應用程式設定附件的瀏覽權限 安裝狀態。僅適用於應用程式意圖網址。下列 在使用者未安裝應用程式時顯示通知。
{
"title": "App not installed",
"url": "intent://host/path#Intent;package=com.example",
"targeting":[
{
"anyOfAppInstallStates": ["NOT_INSTALLED"]
}
]
}
規則的組合
每個附件可以有多個指定目標規則。 相同的指定物件會以 AND 結合在一起以下範例 會顯示週六和週日上午 9 點至下午 5 點的通知。
{
"title": "Weekend and work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
"anyOfDaysOfWeek": [6, 7]
}
]
}
來自不同指定物件的規則進行 OR 標記。下列 範例顯示通知時間為週一到週五上午 9 點至下午 5 點, 還有星期六和星期日全天。
{
"title": "Weekend or work time",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
},
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
在應用程式中新增意圖篩選器
應用程式必須設定為處理指定網址的配置、主機和路徑。
方法是在 AndroidManifest.xml 中新增元素,以宣告
<intent-filter>
符合
符合配置、主機和路徑,並將可瀏覽的類別標示為可瀏覽
篩選器,如下所示:
<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>
詳情請參閱: 處理應用程式連結。