คู่มือการผสานรวมขั้นสูงสำหรับ iOS SDK 7.0+
ส่วนนี้ให้ข้อมูลเกี่ยวกับการผสานรวมขั้นสูงของ Pushwoosh iOS SDK
โหมดเบื้องหลัง (Background modes)
Anchor link toเพื่อให้สามารถใช้งานฟังก์ชันนี้ได้ คุณต้องเพิ่ม Background Modes ในโปรเจกต์ของคุณ
ขั้นตอนการเปิดใช้งานโหมดเบื้องหลัง
Anchor link to- เปิดโปรเจกต์ของคุณใน Xcode และเลือกโปรเจกต์ใน Project Navigator
- เลือก target ของแอปของคุณจากแผงด้านซ้าย
- ไปที่แท็บ Signing & Capabilities
- คลิกปุ่ม + Capability ที่มุมบนซ้าย
- ค้นหาและเลือก Background Modes จากรายการ
- ในส่วน Background Modes ให้เปิดใช้งาน Remote notifications โดยทำเครื่องหมายในช่อง
เมื่อเสร็จสิ้น แอปของคุณจะสามารถจัดการ push notifications รวมถึง silent push notifications ในขณะที่ทำงานในเบื้องหลังได้
โหมดเบื้องหน้า (Foreground modes)
Anchor link toโดยค่าเริ่มต้น Pushwoosh iOS SDK จะแสดงแบนเนอร์การแจ้งเตือนเมื่อแอปทำงานในเบื้องหน้า
คุณสามารถควบคุมพฤติกรรมนี้ได้โดยการตั้งค่าแฟล็กบูลีนต่อไปนี้ในโค้ดของคุณ (เช่น ใน AppDelegate ของคุณ):
// ตั้งค่าเป็น false เพื่อปิดการแจ้งเตือนเบื้องหน้า, true เพื่อเปิดใช้งานPushwoosh.configure.showPushnotificationAlert = true// ตั้งค่าเป็น 0 เพื่อปิดการแจ้งเตือนเบื้องหน้า, 1 เพื่อเปิดใช้งาน[[Pushwoosh configure] setShowPushnotificationAlert:0];ระดับการบันทึก (Log level)
Anchor link toPushwoosh iOS SDK รองรับระดับการบันทึกต่อไปนี้:
NONE- ไม่มีบันทึกจาก SDKERROR- แสดงเฉพาะข้อความข้อผิดพลาดในคอนโซลWARNING- แสดงคำเตือนเพิ่มเติมจากข้อผิดพลาดINFO- รวมข้อความข้อมูล (การตั้งค่าเริ่มต้น)DEBUG- รวมข้อมูลการดีบักอย่างละเอียด
โดยค่าเริ่มต้น ระดับการบันทึกจะถูกตั้งค่าเป็น INFO เพื่อให้แน่ใจว่า SDK ให้ข้อมูลที่เกี่ยวข้องโดยไม่ทำให้คอนโซลของนักพัฒนาซอฟต์แวร์รก
หากต้องการแก้ไขระดับการบันทึก ให้อัปเดตคีย์ Pushwoosh_LOG_LEVEL ในไฟล์ Info.plist ของแอปของคุณ:
<key>Pushwoosh_LOG_LEVEL</key><string>YOUR_LOG_LEVEL</string>หรือคุณสามารถเปลี่ยนระดับการบันทึกโดยใช้โค้ดด้านล่าง:
Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)แทนที่ YOUR_LOG_LEVEL ด้วยระดับที่ต้องการ (เช่น DEBUG หรือ ERROR)
Custom UNNotificationCenterDelegate
Anchor link toหากคุณต้องการใช้ UNNotificationCenterDelegate ของคุณเอง (ตัวอย่างเช่น สำหรับการแจ้งเตือนในเครื่อง) คุณควรแจ้งให้ Pushwoosh SDK ทราบเพื่อการทำงานที่ถูกต้อง คุณสามารถทำได้ด้วยเมธอด addNotificationCenterDelegate:
Pushwoosh.configure.addNotificationCenterDelegate(my_delegate)[Pushwoosh.configure addNotificationCenterDelegate:my_delegate];จากนั้น ให้ implement เมธอด UNNotificationCenterDelegate ใน delegate ของคุณ:
func userNotificationCenter( _ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) { // จัดการการแจ้งเตือนของคุณ completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // จัดการการแจ้งเตือนของคุณ completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // จัดการข้อความของคุณ completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // จัดการข้อความของคุณ completionHandler(); }}การเริ่มต้น Pushwoosh แบบ Lazy (Lazy Initialization)
Anchor link toแฟล็ก Pushwoosh_LAZY_INITIALIZATION จะป้องกันการเริ่มต้น Pushwoosh SDK โดยอัตโนมัติเมื่อแอปพลิเคชันเริ่มทำงาน ซึ่งช่วยให้สามารถควบคุมเวลาที่บริการของ Pushwoosh SDK จะเริ่มทำงานได้มากขึ้น
เมื่อเปิดใช้งานแฟล็กนี้ Pushwoosh SDK จะไม่เริ่มบริการจนกว่าจะมีการเรียกใช้เมธอดของ Pushwoosh iOS SDK อย่างชัดเจน
เพิ่มรายการต่อไปนี้ใน Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>กรณีการใช้งาน
-
การควบคุมการเริ่มต้น SDK – แฟล็ก Pushwoosh_LAZY_INITIALIZATION ช่วยให้สามารถชะลอการเริ่มต้น Pushwoosh SDK ทำให้สามารถควบคุมเวลาที่บริการพุชจะเปิดใช้งานได้มากขึ้น
-
การเลื่อนการเปิดใช้งานพุช – ในบางแอปพลิเคชัน push notifications ควรเริ่มต้นภายใต้เงื่อนไขที่เฉพาะเจาะจงเท่านั้น การเปิดใช้งานแฟล็กนี้จะช่วยให้แน่ใจว่า Pushwoosh SDK จะเริ่มทำงานเมื่อมีการร้องขออย่างชัดเจนเท่านั้น
-
การกำหนดค่าพุชเฉพาะผู้ใช้ – บางแอปพลิเคชันอาจต้องการปรับแต่งการตั้งค่า push notification ตามความต้องการของผู้ใช้หรือการตั้งค่าบัญชี ด้วยการเริ่มต้นแบบ lazy Pushwoosh SDK จะเริ่มทำงานหลังจากที่กำหนดค่าที่เหมาะสมแล้วเท่านั้น
รายการคุณสมบัติ Info.plist ทั้งหมด
Anchor link to| คุณสมบัติ | คำอธิบาย | ค่าที่เป็นไปได้ |
|---|---|---|
Pushwoosh_APPID | ตั้งค่า Pushwoosh application ID สำหรับ production build | XXXXX-XXXXX ประเภท: String |
Pushwoosh_APPID_Dev | ตั้งค่า Pushwoosh application ID สำหรับ development build | XXXXX-XXXXX ประเภท: String |
Pushwoosh_SHOW_ALERT | แสดงการแจ้งเตือนเบื้องหน้า | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_ALERT_TYPE | ตั้งค่ารูปแบบการแจ้งเตือน | BANNER (ค่าเริ่มต้น) / ALERT / NONE ประเภท: String |
Pushwoosh_BASEURL | แทนที่ URL พื้นฐานของเซิร์ฟเวอร์ Pushwoosh | https://cp.pushwoosh.com/json/1.3/ (ค่าเริ่มต้น) ประเภท: String |
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSH | หากเป็น YES Deep Links ที่ได้รับใน silent pushes จะถูกประมวลผลโดยอัตโนมัติ | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | อนุญาตให้ SDK ส่งคำขอเครือข่ายไปยังเซิร์ฟเวอร์ Pushwoosh | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATA | อนุญาตให้ SDK รวบรวมและส่งข้อมูลอุปกรณ์ (เวอร์ชัน OS, locale และรุ่น) ไปยังเซิร์ฟเวอร์ | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSION | อนุญาตให้ SDK รวบรวมและส่งเวอร์ชัน OS ของอุปกรณ์ไปยังเซิร์ฟเวอร์ | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALE | อนุญาตให้ SDK รวบรวมและส่ง locale ของอุปกรณ์ไปยังเซิร์ฟเวอร์ | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | อนุญาตให้ SDK รวบรวมและส่งรุ่นของอุปกรณ์ไปยังเซิร์ฟเวอร์ | YES (ค่าเริ่มต้น) / NO ประเภท: Boolean |
Pushwoosh_LOG_LEVEL | ระดับการบันทึกของ Pushwoosh SDK สำหรับรายละเอียด โปรดดูที่ การควบคุมระดับการบันทึก | NONE / ERROR / WARNING / INFO (ค่าเริ่มต้น) / DEBUG / VERBOSE ประเภท: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | อนุญาตให้ SDK ติดตามการซื้อในแอป จำเป็นสำหรับ Customer Journey Builder | YES / NO (ค่าเริ่มต้น) ประเภท: Boolean |