ข้ามไปที่เนื้อหา

การส่งการแจ้งเตือนแบบท้องถิ่น

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

using hive;    
    int noticeId = 1; // local push unique ID    
Push.unregisterLocalPush(noticeId);
#include "HivePush.h"

int32 NoticeID = 1; // local push unique ID 

FHivePush::UnregisterLocalPush(NoticeID);

API Reference: Push ::unregisterLocalPush

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    int noticeId = 1; // local push unique ID    
Push::unregisterLocalPush(noticeId);

API Reference: Push.unregisterLocalPush

import com.hive.Push    
    val noticeId = 1 // local push unique ID    
Push.unregisterLocalPush(noticeId)

API Reference: com .hive.Push.unregisterLocalPush

import com.hive.Push;    
    int noticeId = 1; // local push unique ID    
Push.INSTANCE.unregisterLocalPush(noticeId);

API Reference: PushInterface .unregisterLocalPush

import HIVEService    
    let noticeId = 1 // local push unique ID    
PushInterface.unregisterLocalPush(noticeId)

API Reference: HIVEPush ::unregisterLocalPush

#import <HIVEService/HIVEService-Swift.h>    
    NSInteger noticeId = 0; // local push unique ID    
[HIVEPush unregisterLocalPush: noticeId];

ยกเลิกการลงทะเบียนการแจ้งเตือนท้องถิ่นที่ระบุทั้งหมด

โดยใช้ API ต่อไปนี้ คุณสามารถสร้างรายการของตัวระบุการผลักดันในท้องถิ่นที่ลงทะเบียน และยกเลิกการลงทะเบียนการผลักดันในท้องถิ่นทั้งหมดได้ในครั้งเดียว

API Reference: hive.Push .unregisterLocalPushes

using hive;    
    List noticeIds = new List { 1, 2, 3 }();    
Push.unregisterLocalPushes(noticeIds);
#include "HivePush.h"

TArray<int32> NoticeIds = { 1, 2, 3 };

FHivePush::UnregisterLocalPushes(NoticeIds);

API Reference: Push:: unregisterLocalPushes

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
    vector noticeIds = { 1, 2, 3 };    
Push::unregisterLocalPushes(noticeIds);

เอกสารอ้างอิง API: Push.unregisterLocalPushes

import com.hive.Push    
    val noticeIds = arrayListOf(1, 2, 3)    
Push.unregisterLocalPushes(noticeIds)

API Reference: com.hive .Push.unregisterLocalPushes

import com.hive.Push;    
    ArrayList<Integer> noticeIds = new ArrayList<>();    
    noticeIds.add(1);    
    noticeIds.add(2);    
    noticeIds.add(3);    
Push.INSTANCE.unregisterLocalPushes(noticeIds);

API Reference: PushInterface .unregisterLocalPushes

import HIVEService    
    let noticeIds = [1, 2, 3]    
PushInterface.unregisterLocalPushes(noticeids)

API Reference: HIVEPush:: unregisterLocalPushes

#import <HIVEService/HIVEService-Swift.h>    
    NSArray* noticeIds = @[ @(1), @(2), @(3) ];    
[HIVEPush unregisterLocalPushes: noticeIds];

ยกเลิกการส่งข้อความท้องถิ่นทั้งหมด

โดยใช้ API ต่อไปนี้ คุณสามารถยกเลิกการลงทะเบียนการแจ้งเตือนในท้องถิ่นของ Hive SDK ได้ไม่เพียงแต่ยังสามารถยกเลิกการแจ้งเตือนในท้องถิ่นทั้งหมดที่อยู่ในสถานะการฟัง

API Reference: hive.Push .unregisterAllLocalPushes

using hive;    
Push.unregisterAllLocalPushes();
#include "HivePush.h"

FHivePush::UnregisterAllLocalPushes();

API Reference: Push:: unregisterAllLocalPushes

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
    using namespace std;    
    using namespace hive;    
Push::unregisterAllLocalPushes();

API Reference: Push.unregisterAllLocalPushes

import com.hive.Push    
Push.unregisterAllLocalPushes()

API Reference: com.hive .Push.unregisterAllLocalPushes

import com.hive.Push;    
Push.INSTANCE.unregisterAllLocalPushes();

API Reference: PushInterface.unregisterAllLocalPushes

import HIVEService    
PushInterface.unregisterAllLocalPushes()

API Reference: HIVEPush:: unregisterAllLocalPushes

#import <HIVEService/HIVEService-Swift.h>    
[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 ดังที่แสดงด้านล่าง

  • การแสดงที่ศูนย์กลางของหน้าเกม<
  • การพบในเมนูการแจ้งเตือน ซึ่งเปิดจากรายการทางซ้ายของหน้าเกม
  • การแสดงบนแอป Facebook
  •