ขั้นสูง
การสร้างกลุ่มการแจ้งเตือน¶
คุณสามารถแสดงการแจ้งเตือนเป็นกลุ่มในศูนย์การแจ้งเตือน การแจ้งเตือนที่สอดคล้องกับเหตุการณ์เดียวกันสามารถถูกรวมกลุ่มและแสดงในรูปแบบที่ยุบได้ กลุ่มการแจ้งเตือนที่ยุบได้สามารถขยายอีกครั้งโดยผู้ใช้ และการแจ้งเตือนแต่ละรายการ (การแจ้งเตือนแต่ละรายการที่อยู่ในกลุ่ม) สามารถดำเนินการแยกต่างหากได้
กลุ่มการแจ้งเตือนสามารถสร้างได้โดยการเปลี่ยนคีย์กลุ่มให้เป็นเปิดใช้งานและเพิ่มค่าคีย์ในคอนโซล > การแจ้งเตือน > การผลักดัน v4 > ลงทะเบียนแคมเปญการผลักดัน > การลงทะเบียนแคมเปญ > ตัวเลือก > คีย์กลุ่ม หลังจากสร้างกลุ่มในคอนโซลแล้ว คุณสามารถใช้กลุ่มการแจ้งเตือนด้วย groupId
เมื่อส่ง การผลักดันในท้องถิ่น และการแจ้งเตือนการผลักดันระยะไกล เมื่อกลุ่มถูกนำไปใช้ การแจ้งเตือนจะถูกแสดงในรูปแบบที่ยุบโดยกลุ่มตามที่แสดงด้านล่าง
| |
![]() | ![]() |
</tbody>
การแจ้งเตือนสื่อ iOS¶
โดยการใช้กรอบงาน UserNotifications ของ Apple คุณสามารถเพิ่มไฟล์สื่อ เช่น รูปภาพและวิดีโอ ลงในการแจ้งเตือน
![]() | ![]() | ![]() |
กระบวนการดำเนินงาน¶
ฟีเจอร์การแจ้งเตือนสื่อทำงานโดยใช้ Notification Service Extension ของ iOS (ซึ่งจะเรียกว่า Extension ต่อไป)
บริการขยายการแจ้งเตือนเป็นประเภทหนึ่งของการขยายแอปที่ช่วยให้คุณสามารถปรับเปลี่ยน Payload ก่อนที่จะมีการส่งการแจ้งเตือนระยะไกลไปยังผู้ใช้ ซึ่งช่วยให้สามารถใช้กระบวนการ (UI หรือฟังก์ชัน) จากแอปอื่นได้โดยไม่ต้องเปลี่ยนบริบท สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ เพิ่มเติม.
ข้อจำกัดขนาดและประเภทไฟล์¶
มีขีดจำกัดขนาดเมื่อแนบไฟล์มีเดีย และข้อมูลรายละเอียดสามารถดูได้ที่ UNNotificationAttachment.
Warning
เราได้ค้นพบว่าเมื่อแอพที่ใช้ AVAudioSession กำลังทำงาน เช่น Youtube และเกมมือถือหลายเกม (เช่น Summoners War, Be a Star, Chain Strike) การส่งเสียงที่ได้รับผ่านการแจ้งเตือนแบบพุชอาจทำให้หน้าจอหลัก (Springboard) รีบูต ปัญหานี้เกิดขึ้นไม่ว่าจะเป็นเวอร์ชัน iOS หรือประเภทอุปกรณ์ใด และได้รับการยืนยันว่ามีความขัดแย้งเกิดขึ้นภายในระบบของ Apple ซึ่งแยกจาก Hive
เมื่อวันที่ 20 ธันวาคม 2018 เราได้สอบถามเกี่ยวกับปัญหานี้กับ Apple และจนกว่าจะมีการเตรียมคำตอบ โปรด หยุดใช้ ฟีเจอร์การส่งเสียงโดยใช้การแจ้งเตือนแบบพุช.
หมวดหมู่ | ประเภท | ขนาดสูงสุด |
---|---|---|
ภาพ | JPG, JPEG, PNG, GIF | 10MB |
วิดีโอ | MP4, AVI | 50MB |
- หากเกิดการหมดเวลาเนื่องจากสภาพเครือข่ายที่ไม่ดี ผู้ใช้จะได้รับการแจ้งเตือนปกติโดยไม่มีสื่อ
- ในเครือข่ายที่ช้ามาก การดาวน์โหลดอาจใช้เวลานานถึง 10 นาที ดังนั้นจึงจำเป็นต้องพิจารณาสภาพเครือข่ายในพื้นที่และใช้สื่อที่มีขนาดเหมาะสม
การนำไปใช้และการใช้งาน¶
ในการดาวน์โหลดสื่อและสร้างวัตถุการแจ้งเตือนใหม่เพื่อส่งมอบให้กับผู้ใช้ จะต้องมีการตั้งค่าและโค้ดต้นฉบับเพิ่มเติมหลายอย่าง
Note
การขยายบริการการแจ้งเตือนไม่สามารถรวมและแจกจ่ายเป็นส่วนหนึ่งของไลบรารีหรือเฟรมเวิร์ก ดังนั้นในการใช้การขยาย คุณต้องดำเนินการตั้งค่าตามคำแนะนำที่ให้โดย Hive.
การเพิ่มส่วนขยาย¶
ในการใช้ฟีเจอร์การแจ้งเตือนสื่อ คุณต้องเพิ่ม ส่วนขยายบริการการแจ้งเตือน ลงในโปรเจกต์ของคุณ แทนที่จะเพิ่มหรือเขียนทับคลาสโดยตรง ให้เพิ่มเป้าหมายใหม่ลงในโปรเจกต์
เมื่อคุณเพิ่มเป้าหมาย เทมเพลตจะถูกสร้างขึ้นโดยอัตโนมัติ
<summary>การเพิ่มเป้าหมายในโปรเจกต์ Unity</summary>
ใน Unity Editor, Hive SDK จะทำการเพิ่มเป้าหมายและสร้าง Info.plist โดยอัตโนมัติด้วยฟีเจอร์ PostProcess คุณเพียงแค่ต้องเปิดใช้งานตัวเลือกการส่งสื่อ; ไม่ต้องมีขั้นตอนด้วยตนเองอื่น ๆ
1. ในแถบเมนูของ Unity Editor ให้ไปที่ <b>Hive > Build project post process settings > iOS</b>
2. เปิดใช้งาน <b>Push Media Contents</b>
<summary>การเพิ่มเป้าหมายในสภาพแวดล้อมที่ไม่ใช่ Unity</summary>
1. ในการตั้งค่าโปรเจ็กต์ Xcode ให้คลิกที่ปุ่ม <b>Add Target</b> (ปุ่ม <i>*+*</i> ที่มุมล่างซ้าย)
{width="700px"}
2. เลือก <b>Notification Service Extension</b> และคลิก <b>ถัดไป</b> <br>
(ตั้งแต่ Xcode 8 เป็นต้นไป คุณสามารถเพิ่ม Notification Service Extension เป็นเป้าหมายในโปรเจกต์)
{width="700px"}
3. ป้อนชื่อ <b>ผลิตภัณฑ์</b>
{width="700px"}
4. เมื่อป๊อปอัปปรากฏขึ้น ให้คลิก <b>เปิดใช้งาน</b> <br>
ส่วนขยายจะถูกฝังโดยอัตโนมัติในโครงการปัจจุบัน และจะมีแผนการสร้างเพิ่มเข้ามา
5. ในแท็บ <b>ทั่วไป</b> ให้ตรวจสอบว่า <b>ส่วนขยาย</b> ได้ถูกเพิ่มไปยังโปรเจกต์แล้ว
{width="700px"}
6. ยืนยันว่า <b>NotificationService</b> คลาสเทมเพลตได้ถูกเพิ่มเข้าไปในโปรเจกต์
{width="700px"}
การเพิ่ม HIVEExtensions.framework¶
คุณสามารถดาวน์โหลดสื่อได้อย่างง่ายดายโดยใช้ HIVEExtensions.framework ที่จัดเตรียมโดย Hive.
วิธีการเพิ่ม HIVEExtensions.framework มีดังนี้:
ถ้าคุณมี Podfile อยู่แล้ว ให้เปิดไฟล์และเพิ่มคำสั่งเป้าหมาย 'NotificationServiceExtension (ชื่อเป้าหมายตัวอย่าง)' do-end statement.
-
ปิดไฟล์ Podfile และรัน
pod install
ในไดเรกทอรีโปรเจกต์ของคุณ. -
เมื่อคุณเปิด NotificationSample (ชื่อโปรเจ็กต์ตัวอย่าง).xcworkspace คุณจะเห็นว่าโปรเจ็กต์ Pods ได้ถูกเพิ่มเข้ามาแล้วตามที่แสดงด้านล่าง คุณสามารถนำเข้า HIVEExtensions ในทั้งเป้าหมาย NotificationSample และ NotificationServiceExtension ได้แล้ว
การใช้เฟรมเวิร์ก¶
นำเข้าเฟรมเวิร์กในไฟล์ NotificationService.swift ตามที่แสดงในตัวอย่าง ดำเนินการตามวิธีที่ให้ไว้ในแม่แบบเพื่อติดต่อกับวิธีการที่ให้โดย HIVEExtensions.framework และ ลบโค้ดแม่แบบเดิมที่อยู่ภายในวิธีการ。
import HIVEExtensions
func didReceiveNotificationRequest(request: UNNotificationRequest, with contentHandler: (UNNotificationContent) -> Void) {
HIVENotificationService.didReceive(request) { content in
guard let content else { return }
contentHandler(content)
}
}
func serviceExtensionTimeWillExpire() {
HIVENotificationService.serviceExtensionTimeWillExpire()
}
#import <HIVEExtensions/HIVEExtensions.h>
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
[HIVENotificationService didReceiveNotificationRequest:request withContentHandler:contentHandler];
}
- (void)serviceExtensionTimeWillExpire {
[HIVENotificationService serviceExtensionTimeWillExpire];
}
ข้อควรระวังในการใช้งาน¶
ความแตกต่างระหว่างเวลาที่ส่งและเวลาที่รับ¶
หลังจากที่งานทั้งหมดใน Extension เสร็จสิ้นแล้ว การแจ้งเตือนจะถูกส่งไปยังผู้ใช้ ซึ่งอาจส่งผลให้เกิดความแตกต่างระหว่างเวลาที่ส่งและเวลาที่รับ และไคลเอนต์จะแสดงเวลาโดยอิงจากเวลาที่เซิร์ฟเวอร์ส่งไป
ตัวอย่างเช่น หากมีการส่งการแจ้งเตือนในเวลา 15:00 และการดาวน์โหลดเสร็จสิ้นในเวลา 15:05 การแจ้งเตือนจะแสดงว่าได้มาถึงในเวลา 15:00
ความจุของอุปกรณ์¶
สื่อที่ได้รับผ่านการแจ้งเตือนแบบพุชจะถูกเก็บไว้ในอุปกรณ์ของผู้ใช้และถูกเปิดเผยผ่านการพุช และสื่อที่ได้รับจะถูกเก็บในพื้นที่ข้อมูลแคชภายในของอุปกรณ์ โดยใช้พื้นที่ภายในของอุปกรณ์ของผู้ใช้ พื้นที่ข้อมูลแคชจะถูกล้างโดยอัตโนมัติโดยระบบปฏิบัติการหากความจุการจัดเก็บภายในของอุปกรณ์ของผู้ใช้ไม่เพียงพอ
การใช้งานข้อมูลมือถือของผู้ใช้¶
สื่อที่ได้รับผ่านการแจ้งเตือนแบบพุชจะใช้ข้อมูลมือถือของผู้ใช้ในการดาวน์โหลด และการดาวน์โหลดจะดำเนินต่อไปโดยไม่มีความยินยอมจากผู้ใช้ ซึ่งอาจทำให้เกิดค่าใช้จ่ายข้อมูลระหว่างการดาวน์โหลด
ในกรณีที่ไฟล์เสียง/วิดีโอถูกส่งผ่านการดัน ให้ตรวจสอบสถานะการเชื่อมต่อเครือข่ายของผู้ใช้ก่อนดาวน์โหลด หากผู้ใช้ไม่ได้เชื่อมต่อกับ Wi-Fi ให้หยุดการดาวน์โหลดและแสดงการแจ้งเตือนการดันโดยไม่มีสื่อแทน
ในขณะนี้ ประเภทของสื่อที่ได้รับผ่านการส่งจะได้รับการยืนยันโดยนามสกุลที่ระบุไว้ที่ส่วนท้ายของ URL สื่อ และเฉพาะนามสกุลที่ระบุไว้ในส่วน [ขนาดไฟล์และประเภทจำกัด] เท่านั้นที่จะถูกแสดงอย่างถูกต้อง
URL ที่ได้รับ | wifi | LTE / 3G |
http://xxx/notimovie.mp4 | สื่อจะถูกเปิดเผยเสมอหลังจากดาวน์โหลด | เนื่องจากมีนามสกุลที่ตรงกับไฟล์วิดีโอ (mp4) จึงเปิดเผยได้โดยไม่ต้องดาวน์โหลดสื่อ |
http://xxx/notimovie | สื่อจะถูกเปิดเผยเสมอหลังจากดาวน์โหลด | มันไม่ใช่ไฟล์เสียง/สื่อ ดังนั้นสื่อจึงเปิดเผยหลังจากดาวน์โหลด |
http://xxx/notisound.wav | สื่อจะถูกเปิดเผยเสมอหลังจากดาวน์โหลด | เนื่องจากมีนามสกุลที่ตรงกับไฟล์เสียง (wav) จึงเปิดเผยได้โดยไม่ต้องดาวน์โหลดสื่อ |
http://xxx/notiimage.jpg | สื่อจะถูกเปิดเผยเสมอหลังจากดาวน์โหลด | มันไม่ใช่ไฟล์เสียง/สื่อ ดังนั้นสื่อจึงเปิดเผยหลังจากดาวน์โหลด |
การตั้งค่าความปลอดภัยในการขนส่งแอป¶
นโยบายเริ่มต้นของ Apple อนุญาตให้การสื่อสารของเซิร์ฟเวอร์ที่ดำเนินการโดยแอปทั้งหมดใช้ https และ URL ที่ได้รับผ่านการแจ้งเตือนก็ได้รับผลกระทบจากนโยบายนี้เช่นกัน หากคุณต้องการสื่อสารโดยใช้โดเมน Http คุณจะต้องตั้งค่าการยกเว้น App Transport Security (ATS)
แม้ว่าแอปพลิเคชันจะมีการจัดการการยกเว้น ATS คุณจะต้องตั้งค่าการยกเว้น ATS ในส่วนขยายเพื่อใช้โดเมน http สำหรับ URL ที่ส่งผ่านการแจ้งเตือนแบบพุช
เมื่อสื่อไม่ได้ถูกส่งใน Unity¶
Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.com2us.hivesdk.normal.freefull.apple.global.ios.universal.NotificationServiceExtension" UserInfo={NSDebugDescription=connection to service named com.com2us.hivesdk.normal.freefull.apple.global.ios.universal.NotificationServiceExtension}
ใน Unity อาจมีกรณีที่สื่อไม่ได้ถูกส่งในขณะที่แสดงบันทึกข้อผิดพลาดเช่นเดียวกับที่แสดงข้างต้น ในกรณีนี้ โปรดตรวจสอบว่าค่าทั้ง armv7 และ arm64 รวมอยู่ในสถาปัตยกรรมของเป้าหมายส่วนขยายที่สร้างขึ้นหรือไม่
ปุ่มการกระทำแบบพุช¶
ปุ่มการกระทำแบบพุชเป็นปุ่มระบบที่ปรากฏเมื่อคุณกดค้างที่การแจ้งเตือนแบบพุช ดังที่แสดงด้านล่าง โดยการเปิดเผยปุ่มเพิ่มเติมเหล่านี้ในการแจ้งเตือนแบบพุช คุณสามารถกระตุ้นการมีส่วนร่วมของผู้ใช้ได้
ด้วย SDK Hive คุณสามารถติดตั้งปุ่มการกระทำแบบพุชได้อย่างง่ายดายด้วยการตั้งค่าที่เรียบง่าย
แอนดรอยด์ | iOS |
---|---|
![]() | ![]() |
Note
ไม่จำเป็นต้องตั้งค่าเพิ่มเติมสำหรับปุ่มการกระทำการส่งใน Android SDK ดูรายละเอียดเกี่ยวกับการใช้ฟีเจอร์ปุ่มการกระทำได้ที่ Single Push API - ActionPayload Guide สำหรับ iOS SDK คุณสามารถใช้วิธีการติดตั้งแบบพื้นฐานหรือขั้นสูงในการ implement ปุ่มการกระทำการส่ง
Warning
เมื่อใช้ปุ่มการกระทำแบบพุชร่วมกับ iOS Media Notification ใน iOS SDK ฟีเจอร์การแจ้งเตือนสื่ออาจทำงานไม่ถูกต้อง เมื่อส่งพุช ให้ใช้ฟีเจอร์เพียงหนึ่งอย่างในแต่ละครั้ง—ไม่ว่าจะเป็น 'media URL' หรือ 'action push' หากทั้งสองอย่างถูกใช้พร้อมกัน จะมีเพียงภาพขนาดย่อของสื่อที่แสดงในใบเสร็จ และผู้ชมที่ขยายจะไม่ปรากฏเมื่อกดค้าง
Warning
เพื่อใช้การกระทำการส่งข้อความใน iOS ใน Unreal Engine คุณต้องสร้างแอป iOS ของคุณโดยใช้ระบบ Modern Build ที่จัดเตรียมโดย Unreal Engine 5.3.2 หรือใหม่กว่า (ทดสอบใน Unreal Engine 5.6.0 / XCode 16.1 / macOS 15.5).
การใช้งานพื้นฐาน (iOS)¶
SDK ของ Hive มีชุดปุ่มการกระทำแบบพุชที่ตั้งค่าไว้ล่วงหน้าซึ่งอิงจากรูปแบบที่ใช้บ่อย เช่น 'ยืนยัน', 'ปฏิเสธ' เป็นต้น การรวมปุ่มที่ตั้งไว้ล่วงหน้าสามารถนำไปใช้ได้อย่างรวดเร็ว และคุณยังสามารถกำหนดและขยายชุดปุ่มการกระทำที่กำหนดเองได้ตามต้องการ ชุดปุ่มการกระทำแบบพุชที่ตั้งไว้ล่วงหน้ามีดังต่อไปนี้
- ยืนยัน
- ปิด
- ยืนยัน, ปิด
- ดำเนินการ, ยกเลิก
- ยอมรับทั้งหมด, ปิด
- ขอรับทันที, ปิด
- ซื้อ, ปฏิเสธ
- ขาย, ปฏิเสธ
- ยอมรับ, ปฏิเสธ, ถือ
หมวดหมู่(รหัสหมวดหมู่) | ชื่อปุ่ม(รหัสการกระทำ) |
---|---|
ยืนยัน(INFO_CATEGORY) | ยืนยัน(CONFIRM_ID) |
ปิด(CLOSE_CATEGORY) | ปิด(CLOSE_ID) |
ยืนยันการเลือก(CONFIRM_CATEGORY) | ยืนยัน(CONFIRM_ID), ปิด(CLOSE_ID) |
ดำเนินการ(EXECUTE_CATEGORY) | ดำเนินการ(EXECUTE_ID), ยกเลิก(CANCEL_ID) |
ยอมรับแบบกลุ่ม(ACCEPT_ALL_CATEGORY) | ยอมรับทั้งหมด(ACCEPT_ALL_ID), ปิด(CLOSE_ID) |
การเรียกร้องทันที(ACCEPT_NOW_CATEGORY) | เรียกร้องตอนนี้(ACCEPT_NOW_ID), ปิด(CLOSE_ID) |
การตัดสินใจซื้อ(PURCHASE_CATEGORY) | ซื้อ(PURCHASE_ID), ปฏิเสธ(DECLINE_ID) |
คำขอขาย(SALE_CATEGORY) | ขาย(SALE_ID), ปฏิเสธ(DECLINE_ID) |
การตัดสินใจ(ACCEPT_DECISION_CATEGORY) | ยอมรับ(ACCEPT_ID), ปฏิเสธ(REJECT_ID), รอ(HOLDING_ID) |
ไม่จำเป็นต้องมีโค้ดเพิ่มเติมเพื่อใช้ชุดปุ่มการกระทำแบบดันเหล่านี้ แต่คุณต้องเพิ่มเป้าหมาย Notification Content Extension
ลงในโปรเจกต์ของคุณ ดู 'คู่มือการใช้งานชุดปุ่มการกระทำแบบดัน' ด้านล่างสำหรับสภาพแวดล้อมการพัฒนาของคุณเพื่อเพิ่มเป้าหมายและเปิดใช้งานปุ่มการกระทำแบบดัน
การใช้ชุดปุ่มการกระทำแบบดันใน Unity
ใน Unity Editor ฟีเจอร์ PostProcess ของ SDK Hive จะจัดการการเพิ่มเป้าหมายและการสร้าง Info.plist โดยอัตโนมัติ เพียงแค่เลือกตัวเลือกในการใช้ปุ่มการกระทำแบบดัน; ไม่มีขั้นตอนอื่นที่ต้องทำด้วยตนเอง
- ในแถบเมนูของ Unity Editor ให้ไปที่ Hive > Build project post process settings > iOS
- เปิดใช้งาน Push Action Buttons
รายการที่แสดงเมื่อเปิดใช้งานปุ่มจะแสดงตัวอย่างจากฟิลด์categories
ในไฟล์ hive_push_actions.json ที่ใช้ใน การใช้งานขั้นสูง หากคุณดำเนินการตามการใช้งานเริ่มต้นโดยไม่มีไฟล์นี้ จะมีการแสดง 'none'
การใช้ปุ่มกด Push Action ในสภาพแวดล้อมที่ไม่ใช่ Unity
หลังจากสร้างโปรเจกต์ Xcode (.xcodeproj) แล้ว ให้ทำตามขั้นตอนเหล่านี้:
- ในการตั้งค่าโปรเจกต์ Xcode ให้คลิกที่ปุ่ม + ที่มุมซ้ายล่างเพื่อเพิ่มเป้าหมาย
- เลือก Notification Content Extension และคลิก ถัดไป
- ป้อนชื่อผลิตภัณฑ์และกำหนดเป้าหมายแอปเกมหลักของคุณให้ "ฝังในแอปพลิเคชัน"
- เมื่อป๊อปอัปปรากฏขึ้นให้คลิก เปิดใช้งาน ส่วนขยายจะถูกฝังโดยอัตโนมัติในโปรเจกต์ปัจจุบันและจะมีแผนสำหรับการสร้างเพิ่มเข้ามา
- ในเป้าหมายแอปเกมหลักที่ ทั่วไป > เฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝังอยู่ ให้ยืนยันว่าชื่อผลิตภัณฑ์ที่คุณป้อนถูกเพิ่มเข้าไป
- ภายใต้เส้นทางชื่อผลิตภัณฑ์ให้ตรวจสอบว่าไฟล์คลาสเทมเพลต NotificationViewController.swift ถูกสร้างขึ้นโดยอัตโนมัติตามที่แสดงด้านล่าง
หลังจากยืนยันไฟล์คลาสเทมเพลตแล้วให้แก้ไขโค้ดในไฟล์นี้ดังนี้:
แก้ไขบรรทัดที่เน้นด้วยสีส้มในภาพด้านล่างimport UIKit import HIVEExtensions import UserNotifications import UserNotificationsUI @objc(NotificationController) class NotificationViewController: UIViewController, UNNotificationContentExtension { func didReceive(_ notification: UNNotification) { HiveNotificationContent.didReceive(notification) } func didReceive(_ response: UNNotificationResponse) async -> UNNotificationContentExtensionResponseOption { await HiveNotificationContent.didReceive(response) } }
- ลบไฟล์ที่สร้างขึ้นโดยอัตโนมัติต่อไปนี้:
- ในแท็บ Info ของเป้าหมายส่วนขยาย ให้กำหนดค่าค่าคีย์ใน Info.plist:
- เปลี่ยนประเภท
NSExtension/NSExtensionAttributes/UNNotificationExtensionCategory
เป็นArray
จากนั้นเพิ่ม รหัสหมวดหมู่ที่กำหนดไว้ล่วงหน้าใน SDK และ รหัสหมวดหมู่ที่กำหนดเองจากไฟล์ของคุณ ลงในรายการ - ตั้งค่า
NSExtension/NSExtensionAttributes/UNNotificationExtensionInitialContentSizeRatio
เป็น0
- เพิ่มคีย์
NSExtension/NSExtensionPrincipalClass
และป้อนชื่อคลาสที่กำหนดในขั้นตอนที่ 6 (NotificationViewController.swift
) เป็นค่า (ค่าเริ่มต้น: NotificationViewController) - ลบคีย์
NSExtension/NSExtensionMainStoryboard
- เปลี่ยนประเภท
- ใน ทั่วไป > ไลบรารีและเฟรมเวิร์ก ของเป้าหมายส่วนขยาย ให้เพิ่มเฟรมเวิร์กที่จำเป็น:
เมื่อคุณได้ใช้ปุ่มดำเนินการผลักดันที่ตั้งค่าในสภาพแวดล้อมการพัฒนาของคุณแล้ว ให้ระบุการดำเนินการเมื่อส่งการผลักดันจากคอนโซล.
เมื่อระบุการดำเนินการ ให้ใช้หมวดหมู่และรหัสการดำเนินการจากรายการรายละเอียดข้างต้น
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าคอนโซล โปรดดูที่คู่มือคอนโซล.
การใช้งานขั้นสูง (iOS)¶
กำหนดค่า actions
และ categories
ในไฟล์ hive_push_actions.json หลังจากกำหนดแล้ว ให้รวมไฟล์ hive_push_actions.json ในเป้าหมายของคุณและสร้างแอป เมื่อแอปทำงาน SDK Hive จะทำการวิเคราะห์ไฟล์โดยอัตโนมัติและลงทะเบียนการกระทำและหมวดหมู่ในศูนย์การแจ้งเตือน
ตัวอย่างของไฟล์ hive_push_actions.json แสดงด้านล่างนี้
hive_push_actions.json ตัวอย่าง
{
"actions": {
"ACCEPT_ALL_ID": { ... },
"ACCEPT_ID": { ... },
"ACCEPT_NOW_ID": { ... },
"CANCEL_ID": { ... },
"CLOSE_ID": { ... },
"CONFIRM_ID": { ... },
"DECLINE_ID": { ... },
"EXECUTE_ID": { ... },
"HOLDING_ID": { ... },
"PURCHASE_ID": { ... },
"REJECT_ID": { ... },
"SALE_ID": { ... }
},
"categories": {
"INFO_CATEGORY": ["CONFIRM_ID"],
"CLOSE_CATEGORY": ["CLOSE_ID"],
"CONFIRM_CATEGORY": ["CONFIRM_ID", "CLOSE_ID"],
"EXECUTE_CATEGORY": ["EXECUTE_ID", "CANCEL_ID"],
"ACCEPT_ALL_CATEGORY": ["ACCEPT_ALL_ID", "CLOSE_ID"],
"ACCEPT_NOW_CATEGORY": ["ACCEPT_NOW_ID", "CLOSE_ID"],
"PURCHASE_CATEGORY": ["PURCHASE_ID", "DECLINE_ID"],
"SALE_CATEGORY": ["SALE_ID", "DECLINE_ID"]
}
}
หมายเหตุสำหรับการเขียนไฟล์:
- จำนวนปุ่มสูงสุดต่อหมวดหมู่ (ชุด) คือ 3.
- ตัวอย่างข้างต้นกำหนดชุดปุ่มเริ่มต้น สำหรับปุ่มการกระทำที่กำหนดเอง ห้ามใช้ตัวระบุซ้ำ; ใช้สตริงที่ไม่ซ้ำกันและสามารถแยกแยะได้.
- การสนับสนุนหลายภาษาจะตาม ภาษาของเกม และคุณสามารถป้อนภาษาที่รองรับได้สูงสุด 16 ภาษาโดย SDK ของ Hive ภาษาอังกฤษ (
"en"
) เป็นค่าที่จำเป็นสำหรับสตริงหลายภาษา.
Note
Unity PostProcess ได้รับการสนับสนุน หากคุณเพิ่มไฟล์ hive_push_actions.json ไปยังเส้นทางเดียวกับ hive_config.xml ในโปรเจกต์ Unity ของคุณ มันจะถูกเพิ่มไปยังเป้าหมายแอปโดยอัตโนมัติเมื่อสร้างโปรเจกต์ Xcode.
Warning
หลังจากเขียนไฟล์แล้ว ให้เพิ่มคีย์จากฟิลด์ "categories" ในไฟล์ไปยัง UNNotificationExtensionCategory
ใน Info.plist ของ Notification Content Extension.
ใน Unity จะทำโดยอัตโนมัติโดยการวิเคราะห์ไฟล์