การส่งการแจ้งเตือนแบบท้องถิ่น
HIVE มีฟังก์ชันที่สามารถใช้เป็นการแจ้งเตือนเกมโดยการลงทะเบียนการแจ้งเตือนแบบพุชไปยังอุปกรณ์จากไคลเอนต์เกมโดยไม่ต้องใช้เซิร์ฟเวอร์พุช ซึ่งเรียกว่า Local Push. Hive SDK มีฟังก์ชันการลงทะเบียนและการปล่อยการแจ้งเตือนแบบพุชในท้องถิ่น การแจ้งเตือนแบบพุชในท้องถิ่นที่ลงทะเบียนจะส่งการแจ้งเตือนในเวลาที่กำหนดแม้ว่าคุณจะปิดแอปของคุณ และการแจ้งเตือนแบบพุชในท้องถิ่นที่ลงทะเบียนสามารถยกเลิกการลงทะเบียนได้ตามต้องการ.
Note
-
สถานะของการส่งและรับการแจ้งเตือนท้องถิ่นไม่รับประกันใน Android 4.4 (KitKat) API Level 19 และรุ่นที่ใหม่กว่า。
-
ระบบปฏิบัติการ Android จำกัด การแจ้งเตือนแบบพุชเพื่อลดการใช้แบตเตอรี่.
ข้อมูลการผลักดันในท้องถิ่น¶
HIVE กำหนดข้อมูล Local Push ในคลาส LocalPush ด้วยเนื้อหาดังต่อไปนี้
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
noticeId | จำนวนเต็ม | ตัวระบุของข้อความ Local Push |
title | สตริง | ชื่อของข้อความ Local Push |
msg | สตริง | เนื้อหาของข้อความ Local Push |
after | จำนวนเต็ม | ช่วงเวลาระหว่างการลงทะเบียนการส่งและการแสดงข้อความ (หน่วย: วินาที, ค่าเริ่มต้น=0) |
groupId | สตริง | นี่คือ ID กลุ่มสำหรับกลุ่มการแจ้งเตือน กลุ่มการแจ้งเตือนจะแสดงการแจ้งเตือนที่ส่งจากแอปเดียวกันในกลุ่มบนอุปกรณ์ของผู้ใช้ หากคุณไม่ได้ตั้งค่าค่านี้ ข้อความ Local Push จะถูกแสดงในกลุ่มแอปเริ่มต้น. |
การลงทะเบียนการส่งข้อความท้องถิ่น¶
ในการลงทะเบียนการแจ้งเตือนแบบ Local Push บนอุปกรณ์ของผู้ใช้ ให้เรียกใช้วิธีการ registerLocalPush()
ของคลาส Push
Note
บน iOS จำนวนสูงสุดของการลงทะเบียน Local Push Notification คือ 64 และอาจจำกัดน้อยกว่า 64 ขึ้นอยู่กับเวอร์ชันของอุปกรณ์และระบบปฏิบัติการ หากคุณลงทะเบียนการแจ้งเตือนเกินขีดจำกัด ระบบจะทิ้งการแจ้งเตือนที่เก่าที่สุดตามลำดับ (Link)
ต่อไปนี้คือตัวอย่างโค้ดสำหรับลงทะเบียน Local Push
API Reference: hive.Push.registerLocalPush
using hive;
LocalPush localPush = new LocalPush ();
localPush.noticeId = 1;
localPush.title = "Local Push Title";
localPush.msg = "Local Push Message";
localPush.after = 5;
localPush.groupId = "a";
Push.registerLocalPush(localPush, (ResultAPI result, LocalPush localPush) => {
if (result.isSuccess()) {
// call successful
}
});
#include "HivePush.h"
FHiveLocalPush LocalPush;
LocalPush.NoticeId = 1;
LocalPush.Title = TEXT("Local Push Title");
LocalPush.Msg = TEXT("Local Push Message");
LocalPush.After = 5;
LocalPush.GroupId = TEXT("a");
FHivePush::RegisterLocalPush(LocalPush, FHivePushOnLocalPushDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHiveLocalPush& LocalPush) {
if (Result.IsSuccess()) {
// API call successfull
}
}));
API Reference: Push::registerLocalPush
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
LocalPush localPush;
localPush.noticeId = 1;
localPush.title = "Local Push Title";
localPush.msg = "Local Push Message";
localPush.after = 5;
localPush.groupId = "a";
Push::registerLocalPush(localPush, [=](ResultAPI result, LocalPush localPush){
if (result.isSuccess()) {
// call successful
}
});
API Reference: registerLocalPush
import com.hive.Push
import com.hive.ResultAPI
val localPush = Push.LocalPush().apply {
noticeID = 1
title = "Local Push Title"
msg = "Local Push Message"
after = 5
groupId = "a"
}
Push.registerLocalPush(localPush, object : Push.LocalPushListener {
override fun onRegisterLocalPush(result: ResultAPI, localPush: Push.LocalPush?) {
if (result.isSuccess) {
// call successful
}
}
})
API Reference: com.hive.Push.registerLocalPush
import com.hive.Push;
import com.hive.ResultAPI;
Push.LocalPush localPush = new Push.LocalPush();
localPush.setNoticeID(1);
localPush.setTitle("Local Push Title");
localPush.setMsg("Local Push Message");
localPush.setAfter(5);
localPush.setGroupId("a");
Push.INSTANCE.registerLocalPush(localPush, (result, localPushData) -> {
if (result.isSuccess()) {
// call successful
}
});
API Reference: registerLocalPush(_:handler:)
import HIVEService
let localPush = LocalPush()
localPush.noticeId = 1;
localPush.title = "Local Push Title";
localPush.msg = "Local Push Message";
localPush.after = 5;
localPush.groupId = "a";
PushInterface.registerLocalPush(localPush) { result, localPush in
if result.isSuccess() {
// call successful
}
}
API Reference: Objective-C
#import <HIVEService/HIVEService-Swift.h>
HIVELocalPush *localPush = [[HIVELocalPush alloc] init];
localPush.noticeId = 1;
localPush.title = @"Local Push Title";
localPush.msg = @"Local Push Message";
localPush.after = 5;
localPush.groupId = @"a";
[HIVEPush registerLocalPush: localPush handler: ^(HIVEResultAPI *result, HIVELocalPush *localPush) {
if ([result isSuccess]) {
// call successful
}
}];
ยกเลิกการลงทะเบียนการแจ้งเตือนท้องถิ่น¶
คุณสามารถยกเลิกการลงทะเบียนการแจ้งเตือนแบบพุชในท้องถิ่นที่ลงทะเบียนไว้ก่อนเวลาที่กำหนดสำหรับการแจ้งเตือน
ยกเลิกการลงทะเบียน Local Push ที่ลงทะเบียนไว้ ใช้ API ต่อไปนี้ ตั้งค่าตัวระบุการแจ้งเตือนที่ลงทะเบียนเป็นพารามิเตอร์ (noticeId) และยกเลิกการลงทะเบียน Local Push
API Reference: hive .Push.unregisterLocalPush
API Reference: Push ::unregisterLocalPush
API Reference: Push.unregisterLocalPush
API Reference: com .hive.Push.unregisterLocalPush
API Reference: PushInterface .unregisterLocalPush
API Reference: HIVEPush ::unregisterLocalPush
ยกเลิกการลงทะเบียนการแจ้งเตือนท้องถิ่นที่ระบุทั้งหมด
โดยใช้ API ต่อไปนี้ คุณสามารถสร้างรายการของตัวระบุการผลักดันในท้องถิ่นที่ลงทะเบียน และยกเลิกการลงทะเบียนการผลักดันในท้องถิ่นทั้งหมดได้ในครั้งเดียว
API Reference: hive.Push .unregisterLocalPushes
API Reference: Push:: unregisterLocalPushes
เอกสารอ้างอิง API: Push.unregisterLocalPushes
API Reference: com.hive .Push.unregisterLocalPushes
API Reference: PushInterface .unregisterLocalPushes
API Reference: HIVEPush:: unregisterLocalPushes
ยกเลิกการส่งข้อความท้องถิ่นทั้งหมด
โดยใช้ API ต่อไปนี้ คุณสามารถยกเลิกการลงทะเบียนการแจ้งเตือนในท้องถิ่นของ Hive SDK ได้ไม่เพียงแต่ยังสามารถยกเลิกการแจ้งเตือนในท้องถิ่นทั้งหมดที่อยู่ในสถานะการฟัง
API Reference: hive.Push .unregisterAllLocalPushes
API Reference: Push:: unregisterAllLocalPushes
API Reference: Push.unregisterAllLocalPushes
API Reference: com.hive .Push.unregisterAllLocalPushes
API Reference: PushInterface.unregisterAllLocalPushes
API Reference: HIVEPush:: unregisterAllLocalPushes
การปรับแต่ง UI การส่งข้อความในท้องถิ่น (เฉพาะ Android)¶
การแจ้งเตือนท้องถิ่นสามารถปรับแต่งได้บนอุปกรณ์ Android ข้อมูลเกี่ยวกับองค์ประกอบ UI ที่จะปรับแต่งถูกตั้งค่าในพารามิเตอร์ของคลาส LocalPush ของวิธีการ registerLocalPush()
ที่ลงทะเบียนการแจ้งเตือนท้องถิ่นพร้อมกับข้อมูลการตั้งค่าการแจ้งเตือน
UI การผลักด локал¶
ข้อมูลการปรับแต่งของ Local Push UI ถูกกำหนดในคลาส LocalPush ซึ่งกำหนดข้อมูลของการตั้งค่า Local Push ตารางต่อไปนี้อธิบายฟิลด์ที่สามารถเปลี่ยนแปลงได้บางส่วนจากคลาส LocalPush ที่เกี่ยวข้องกับรายการ UI ชื่อฟิลด์บางชื่อเชื่อมโยงกับรายละเอียด คลิกที่ชื่อฟิลด์เพื่ออ่านรายละเอียดเพิ่มเติมพร้อมภาพหน้าจอ
ชื่อ | ประเภท | คำอธิบาย | จำเป็น |
---|---|---|---|
type | สตริง | ประเภทของข้อความ Push: "bar" : แสดงการแจ้งเตือนเฉพาะในแถบการแจ้งเตือน (ค่าเริ่มต้น) "toast" : แสดงการแจ้งเตือนเฉพาะในรูปแบบ toast popup "bar,toast" : แสดงการแจ้งเตือนทั้งในแถบการแจ้งเตือนและในรูปแบบ toast popup | ไม่จำเป็น |
bigmsg | สตริง | เนื้อหาที่ผู้ใช้สามารถดูได้จากด้านบนของหน้าจอ ความยาวไม่จำกัด คำเตือน: ใช้งานได้กับ Android Jelly Bean (4.1) และสูงกว่า | ไม่จำเป็น |
ticker | สตริง | Tickers กับการแจ้งเตือนแบบ push | ไม่จำเป็น |
icon | สตริง | ชื่อไฟล์ใน /res/drawable ไดเรกทอรี โดยไม่รวมส่วนขยายไฟล์ ตัวอย่างเช่น หากเส้นทางไฟล์คือ res/drawable-xhdpi/hive_icon.png ค่าของฟิลด์ icon คือ "hive\_icon" หากไม่มีชื่อไฟล์ ไอคอนเกมจะแสดงเป็นค่าเริ่มต้น | ไม่จำเป็น |
sound | สตริง | เส้นทางไฟล์สำหรับไฟล์เสียงที่เตือนการแจ้งเตือนแบบ push หากไม่มีเส้นทางไฟล์ เสียงการแจ้งเตือนเริ่มต้น | ไม่จำเป็น |
active | สตริง | การตั้งค่าการดำเนินการเมื่อผู้ใช้แตะการแจ้งเตือนแบบ push: "app" : เรียกใช้เกม (ค่าเริ่มต้น) "web:< URL ที่จะย้าย>" : ย้ายไปยัง URL | ไม่จำเป็น |
broadcastAction | สตริง | ค่าการดำเนินการเพื่อกระจาย | ไม่จำเป็น |
buckettype | จำนวนเต็ม | ประเภทในการแสดงการแจ้งเตือนแบบ push: * 0: เขียนทับ (ค่าเริ่มต้น) * 1: Inboxing * 2: เพิ่มเติม | ไม่จำเป็น |
bucketsize | จำนวนเต็ม | จำนวนข้อความที่เกี่ยวข้องกับ ID push หนึ่งรายการที่จะแสดงในครั้งเดียว | ไม่จำเป็น |
bigpicture | สตริง | เส้นทางไฟล์สำหรับไฟล์ภาพที่แสดงในการแจ้งเตือนแบบ push | ไม่จำเป็น |
icon_color | สตริง | สีพื้นหลังของไอคอน รูปแบบ: {"r":[0–255],"g":[0–255],"b":[0–255]} ตัวอย่าง: {"r":0,"g":128,"b":255} คำเตือน: ใช้งานได้กับ Android Lollipop (5.0) และสูงกว่า | ไม่จำเป็น |
Note
bigpicture
มีให้ใช้งานกับฟิลด์ msg
แต่ไม่สามารถใช้งานได้กับ bigmsg
และ ticker
type
ฟิลด์¶
type
ฟิลด์หมายถึงรูปแบบการสนทนาของข้อความที่ส่งไปยังผู้ใช้ รูปแบบนี้กำหนดวิธีการแสดงข้อความที่ส่งไปยังผู้ใช้บนหน้าจอ. รูปแบบการสนทนาของข้อความที่ส่งไปยังผู้ใช้มีสามตัวเลือก.
- ประเภทแถบ: แถบจะแสดงที่ด้านบนของหน้าจอพร้อมกับ
ไอคอน
,ชื่อเรื่อง
, และข้อความ
การแจ้งเตือนจะไม่แสดงเมื่อหน้าจอของอุปกรณ์ปิดอยู่ - ประเภทป๊อปอัพ: ป๊อปอัพจะแสดงในรูปแบบขนมปังปิ้ง
- ทั้งประเภทแถบและป๊อปอัพ: ทั้งแถบและป๊อปอัพจะแสดงบนหน้าจอ
หากหน้าจออุปกรณ์ปิดอยู่และประเภทถูกตั้งค่าเป็น ทั้งแบบบาร์และแบบป๊อปอัพ ป๊อปอัพจะแสดงเฉพาะเป็นภาพด้านบนเท่านั้น
bigmsg
และ bigpicture
ฟิลด์¶
ดูภาพด้านล่างเพื่อตรวจสอบข้อความใหญ่และภาพใหญ่ที่แสดงบนหน้าจอ。
- ใช้ฟิลด์
bigmsg
เพื่อแสดงข้อความจำนวนมาก ฟิลด์ticker
ใช้งานได้กับbigmsg
。 - ด้วยฟิลด์
bigpicture
คุณสามารถแสดงภาพขนาดใหญ่บนหน้าจอการแจ้งเตือน。 bigpicture
ไม่สามารถใช้ได้กับbigmsg
。bigpicture
ใช้งานได้กับticker
。
buckettype
ฟิลด์¶
หากมีการแสดงการแจ้งเตือนหลายรายการและค่าของฟิลด์ buckettype
เป็น 1 หรือ 2 การแจ้งเตือนแบบซ้อนจะถูกแสดงในส่วนหนึ่ง.
bucketsize
หมายถึงจำนวนข้อความที่แสดงบนแถบการแจ้งเตือน.- หากค่าของ
buckettype
เป็น 1 ซึ่งหมายถึงประเภท Inboxing และหากข้อความเกินหนึ่งบรรทัด จะมีการเพิ่มจุดไข่ปลา (...) และเนื้อหาที่เกินจากหน้าจอจะไม่แสดง. - หากค่าของ
buckettype
เป็น 2 ข้อความทั้งหมดจะแสดงบนหน้าจอ. buckettype
ใช้งานได้กับticker
.
Note
หากคุณตั้งค่า target = 21 เพื่อแสดงใน Google Play Store โปรดเพิ่มไอคอนการแจ้งเตือนเพื่อป้องกันไม่ให้ไอคอนการแจ้งเตือนปรากฏเป็นสีขาวบนอุปกรณ์ Android 5.0 หรือสูงกว่า เพื่อทำเช่นนี้ ให้เพิ่มไฟล์ไอคอนในโฟลเดอร์ /res/drawable/ โดยใช้ชื่อ ic_c2s_notification_small_icon.png ขนาด DPI ของไอคอนมีดังนี้;
- mdpi: 24x24
- hdpi: 36x36
- xhdpi: 48x48
- xxhdpi: 72x72
- xxxhdpi: 96x96
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบ โปรดดูที่ Google Design Guide。
ส่งการแจ้งเตือน Facebook cloud game (Android)¶
ด้วยฟีเจอร์การส่งข้อความในพื้นที่ของ Hive SDK ที่ให้บริการจากการสร้าง Facebook Cloud Game คุณสามารถใช้ Facebook App To User Notifications.
Note
ตั้งแต่ Hive SDK v4 24.2.0 ฟีเจอร์ Facebook Cloud Game จะไม่ถูกสนับสนุนอีกต่อไป สำหรับโปรเจกต์ที่ใช้ Facebook Cloud Game กรุณาลบการตั้งค่าและการเรียกฟังก์ชันที่เกี่ยวข้องทั้งหมด
สำหรับการแจ้งเตือน Facebook มีข้อจำกัดที่แตกต่างจากการส่งข้อความปกติของ Android โปรดตรวจสอบรายละเอียดได้ที่ หน้า Facebook App To User Notifications
โปรดทราบว่าฟีเจอร์การแจ้งเตือนของ Facebook กำลังได้รับการอัปเดตอย่างต่อเนื่องโดย Facebook ทำให้เกิดการเปลี่ยนแปลงในพฤติกรรมอย่างต่อเนื่อง จนกว่าฟีเจอร์การแจ้งเตือนของ Facebook จะมีเสถียรภาพ Hive SDK จะได้รับการอัปเดตอย่างต่อเนื่อง (v4.16.1 ได้ติดตามและตรวจสอบการอัปเดตการแจ้งเตือนจาก Facebook App To User ตั้งแต่เดือนตุลาคม 2022.)
ข้อมูลที่จำเป็นสำหรับฟีเจอร์การแจ้งเตือน Facebook จะต้องถูกกำหนดในคลาส LocalPush ตารางต่อไปนี้กำหนดว่าฟิลด์ใดของคลาส LocalPush ที่จำเป็นสำหรับการแจ้งเตือน Facebook
ชื่อ | ประเภท | คำอธิบาย | จำเป็น |
title | String | - ชื่อเรื่องข้อความแจ้งเตือนในท้องถิ่น- ต้องมีความยาว 1~30 ตัวอักษร- ค่าชื่อเรื่องจำเป็นตั้งแต่ Hive SDK 4.16.1 แต่ยังไม่ยืนยันว่าจะใช้ที่ไหนใน UI ของ Facebook. | จำเป็น |
msg | String | - เนื้อหาข้อความแจ้งเตือนในท้องถิ่น- ต้องมีความยาว 10~180 ตัวอักษร- แสดงเป็นข้อความในการแจ้งเตือน | จำเป็น |
after | Integer | - ระบุจำนวนวินาทีที่จะใช้หลังจากการลงทะเบียนการแจ้งเตือนเพื่อแสดงข้อความแจ้งเตือน (เป็นวินาที ค่าเริ่มต้น = 0)- ตั้งค่าเวลาที่ต้องการ (วินาที) สูงสุด 10 วันหรือน้อยกว่า | จำเป็น |
bigpicture | String | - ต้องการการตั้งค่าภาพ- 300x200 px- ขนาดน้อยกว่า 10MB- หากภาพถูกโพสต์เป็นลิงก์เว็บ ให้ใช้ URL ที่เริ่มต้นด้วย http หรือ https(เช่น: https://hive-fn.qpyou.cn/hubweb/hive_img/U/P/122349090/20151028/82f610b6f4590863934cefb2b875c87a.jpg)- หากไฟล์ภาพรวมอยู่ในทรัพยากรของโปรเจกต์ ไฟล์ภาพควรรวมอยู่ภายใต้ /res/drawable หากชื่อไฟล์คือ fbcloudtest.png ให้ใส่เพียง fbcloudtest เป็นค่า | จำเป็น |
เมื่อมีการแจ้งเตือนเข้ามา เนื้อหาของการแจ้งเตือนจะแสดงบนหน้าเว็บและแอป Facebook ดังที่แสดงด้านล่าง