วิธีที่ง่ายที่สุดในการเพิ่มไฟล์แนบของการแจ้งเตือน Nearby คือ หน้าแดชบอร์ด Googleบีคอน หรืออาจใช้ Proximity Beacon API และรูปแบบข้อมูลไฟล์แนบที่อธิบายไว้ด้านล่าง
ไฟล์แนบสําหรับฟีเจอร์การแจ้งเตือนใกล้เคียงต้องใช้เนมสเปซ com.google.nearby
และประเภทที่ประกอบด้วยรหัสภาษาแบบ 2 ตัวอักษรและคําต่อท้าย -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
ควรน้อยกว่า 40 อักขระ และต้องมีอักขระไม่เกิน 50 ตัว การดําเนินการนี้ควรจะแสดง คํากระตุ้นการตัดสินใจให้แก่ผู้ใช้ เช่นOrder with your phone, skip the line
,Set up your thermostat
หรือLearn more about sea otters
- url — URL ของแอป เว็บไซต์ หรือบริการ
- การกําหนดเป้าหมาย — กฎที่ไม่บังคับสําหรับจํากัดระดับการเข้าถึงการแจ้งเตือนตามบริบทของอุปกรณ์
รูปแบบ URL
การแจ้งเตือน Nearby รองรับ URL 3 รูปแบบ ได้แก่
URL ของเว็บ
URL ของเว็บคือ URL ปกติทุกประการ เมื่อได้รับ URL เว็บ ระบบจะแจ้งให้ผู้ใช้เปิด URL ในเบราว์เซอร์เริ่มต้น ไม่จําเป็นต้องมีการกําหนดค่าแอปพิเศษ URL เว็บต้องใช้ HTTPS และอยู่ในรูปแบบ URL ปกติ
https://www.example.com
หาก URL เว็บของคุณไม่ทริกเกอร์การแจ้งเตือน อาจเป็นเพราะสาเหตุต่อไปนี้
- การใช้ HTTP แทน HTTPS
- ไม่อนุญาตให้ลิงก์กับ App Store เช่น play.google.com หน้าเว็บควรสร้างขึ้นเองและให้ข้อมูลหรือการดําเนินการที่เป็นประโยชน์ในหน้า Landing Page โดยตรง
Intent ของแอป
ระบบจะใช้ URL Intent ของแอปเพื่อทริกเกอร์ Intent ในแอป เมื่อได้รับ URL Intent ของแอป แอปที่เกี่ยวข้องจะตอบสนองพารามิเตอร์ที่อยู่ใน URL หากตัวกรอง Intent ของแอปที่เกี่ยวข้องมีอยู่ หากไม่ได้ติดตั้งแอป ระบบจะนําผู้ใช้ไปที่ Play Store เพื่อติดตั้งแอป หลังจากติดตั้งแอปแล้ว ผู้ใช้จะเปิดแอปและไปยังฟีเจอร์ที่นักพัฒนาแอประบุไว้ต่อไปได้ URL Intent ของแอปมีรูปแบบดังต่อไปนี้
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการจัดรูปแบบ URL ของ Intent ได้ที่Android Intent ด้วย Chrome โปรดทราบว่าระบบจะไม่ส่ง Intent เพิ่มเติม
นอกจากนี้ คุณยังสร้าง URL ได้อย่างถูกต้องโดยการสร้าง Intent แล้วใช้ 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));
Intent ของแอปรูปแบบอิสระ
ตัวเลือกนี้ควรใช้สําหรับความตั้งใจของแอปที่ไม่ตรงกับรูปแบบ เส้นทาง และชื่อแพ็กเกจ ให้ใช้ตัวเลือกนี้เมื่อแน่ใจว่า URL ของ Intent อยู่ในรูปแบบที่ถูกต้องเท่านั้น
คุณอาจเลือกส่งผู้ใช้ไปยัง URL ที่ระบุแทน Play Store ในกรณีที่ไม่ได้ติดตั้งแอปโดยเพิ่มพารามิเตอร์ S.browser_excluded_url ลงใน Intent ดังนี้
intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;
การกําหนดเป้าหมายตามบริบท
กฎ
การแจ้งเตือน Nearby รองรับกฎการกําหนดเป้าหมาย 4 ข้อดังนี้
วันที่
dateStart
และ dateEnd
ใช้สําหรับระบุช่วงวันที่ที่ไฟล์แนบจะปรากฏ โดยอยู่ในรูปแบบ ISO 8601
ตัวอย่างต่อไปนี้แสดงการแจ้งเตือนระหว่างเดือนมกราคม 2017
{
"title": "January 2017",
"url": "https://www.example.com",
"targeting":[
{
"startDate": "2017-01-01",
"endDate": "2017-01-31"
}
]
}
ช่วงเวลาของวัน
และ "timeOfDayStart" และ "timeOfDayEnd" จะระบุช่วงเวลารายวันที่มองเห็นไฟล์แนบนั้นได้ในรูปแบบ ISO 8601 ตัวอย่างต่อไปนี้แสดงการแจ้งเตือนตั้งแต่เวลา 9:00 น. ถึง 17:00 น. ทุกวัน
{
"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" มีไว้สําหรับการตั้งค่าระดับการเข้าถึงไฟล์แนบตามสถานะการติดตั้งแอป ใช้ได้กับ URL Intent ของแอปเท่านั้น ตัวอย่างต่อไปนี้แสดงการแจ้งเตือนเมื่อไม่ได้ติดตั้งแอป
{
"title": "App not installed",
"url": "intent://host/path#Intent;package=com.example",
"targeting":[
{
"anyOfAppInstallStates": ["NOT_INSTALLED"]
}
]
}
ชุดค่าผสมของกฎ
ไฟล์แนบแต่ละรายการมีกฎการกําหนดเป้าหมายได้หลายกฎ และกฎจากออบเจ็กต์การกําหนดเป้าหมายเดียวกันจะ AND ตัวอย่างต่อไปนี้แสดงการแจ้งเตือนตั้งแต่ 9:00 น. ถึง 17:00 น. ในวันเสาร์และวันอาทิตย์
{
"title": "Weekend and work time",
"url": "https://www.example.com",
"targeting":[
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
"anyOfDaysOfWeek": [6, 7]
}
]
}
กฎจากออบเจ็กต์การกําหนดเป้าหมายต่างๆ จะใช้ OR ร่วมกัน ตัวอย่างต่อไปนี้แสดงการแจ้งเตือนตั้งแต่ 9:00 น. ถึง 17:00 น. ทุกวันจันทร์ถึงวันศุกร์ รวมถึงทุกวันในวันเสาร์และวันอาทิตย์
{
"title": "Weekend or work time",
"url": "https://www.example.com",
"targeting":[
{
"anyOfDaysOfWeek": [6, 7]
},
{
"startTimeOfDay": "9:00",
"endTimeOfDay": "17:00"
}
]
}
เพิ่มตัวกรอง Intent ลงในแอป
ต้องกําหนดค่าให้แอปจัดการรูปแบบ โฮสต์ และเส้นทางสําหรับ URL ที่ระบุ
โดยต้องเพิ่มองค์ประกอบใน 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>
ดูข้อมูลเพิ่มเติมได้ที่การจัดการ App Link