คู่มือการผสานการทำงานขั้นสูงสำหรับ iOS SDK
ส่วนนี้ให้ข้อมูลเกี่ยวกับการผสานการทำงานขั้นสูงของ 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 โดยทำเครื่องหมายที่ช่อง
เมื่อเสร็จสิ้น แอปของคุณจะสามารถจัดการการแจ้งเตือนแบบพุช รวมถึงแบบเงียบได้ในขณะที่ทำงานในเบื้องหลัง
โหมดเบื้องหน้า (Foreground modes)
Anchor link toโดยค่าเริ่มต้น Pushwoosh iOS SDK จะแสดงแบนเนอร์การแจ้งเตือนเมื่อแอปทำงานในเบื้องหน้า
คุณสามารถควบคุมพฤติกรรมนี้ได้โดยการตั้งค่า boolean flag ต่อไปนี้ในโค้ดของคุณ (เช่น ใน AppDelegate
ของคุณ):
// ตั้งค่าเป็น false เพื่อปิดการแจ้งเตือนเบื้องหน้า, true เพื่อเปิดใช้งานPushwoosh.sharedInstance().showPushnotificationAlert = true
// ตั้งค่าเป็น 0 เพื่อปิดการแจ้งเตือนเบื้องหน้า, 1 เพื่อเปิดใช้งาน[[Pushwoosh sharedInstance] setShowPushnotificationAlert:0];
ระดับการบันทึก Log (Log level)
Anchor link toPushwoosh iOS SDK รองรับระดับการบันทึก Log ต่อไปนี้:
NONE
- ไม่มี log จาก SDKERROR
- แสดงเฉพาะข้อความแสดงข้อผิดพลาดในคอนโซลWARNING
- แสดงคำเตือนเพิ่มเติมจากข้อผิดพลาดINFO
- รวมข้อความข้อมูล (การตั้งค่าเริ่มต้น)DEBUG
- รวมข้อมูลการดีบักโดยละเอียด
โดยค่าเริ่มต้น ระดับการบันทึก Log จะถูกตั้งค่าเป็น INFO เพื่อให้แน่ใจว่า SDK ให้ข้อมูลที่เกี่ยวข้องโดยไม่ทำให้คอนโซลของนักพัฒนาซอฟต์แวร์รก
หากต้องการแก้ไขระดับการบันทึก Log ให้อัปเดตคีย์ Pushwoosh_LOG_LEVEL
ในไฟล์ Info.plist
ของแอป:
<key>Pushwoosh_LOG_LEVEL</key><string>YOUR_LOG_LEVEL</string>
อีกวิธีหนึ่งคือ คุณสามารถเปลี่ยนระดับ log โดยใช้โค้ดด้านล่าง:
Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)
แทนที่ YOUR_LOG_LEVEL
ด้วยระดับที่ต้องการ (เช่น DEBUG
หรือ ERROR
)
Custom UNNotificationCenterDelegate
Anchor link toหากคุณต้องการใช้ UNNotificationCenterDelegate
ของคุณเอง (ตัวอย่างเช่น สำหรับการแจ้งเตือนในเครื่อง) คุณควรแจ้งให้ Pushwoosh SDK ทราบเพื่อการทำงานที่ถูกต้อง คุณสามารถทำได้ด้วยคุณสมบัติ notificationCenterDelegateProxy
ของอินสแตนซ์ Pushwoosh:
Pushwoosh.sharedInstance()?.notificationCenterDelegateProxy.add(my_delegate)
[Pushwoosh.sharedInstance.notificationCenterDelegateProxy 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
จะป้องกันการเริ่มต้น SDK ของ Pushwooshโดยอัตโนมัติเมื่อแอปพลิเคชันเริ่มทำงาน ซึ่งช่วยให้สามารถควบคุมเวลาที่จะเริ่มบริการ Pushwoosh SDK ได้มากขึ้น
เมื่อเปิดใช้งานแฟล็กนี้ Pushwoosh SDK จะไม่เริ่มบริการจนกว่าจะมีการเรียกใช้เมธอดของ Pushwoosh iOS SDK อย่างชัดเจน
เพิ่มรายการต่อไปนี้ใน Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>
กรณีการใช้งาน (Use Cases)
การเริ่มต้น SDK ที่มีการควบคุม – แฟล็ก Pushwoosh_LAZY_INITIALIZATION ช่วยให้สามารถหน่วงเวลาการเริ่มต้นของ Pushwoosh SDK ทำให้สามารถควบคุมเวลาที่บริการพุชจะถูกเปิดใช้งานได้มากขึ้น
การเปิดใช้งานพุชแบบรอการตัดบัญชี (Deferred Push Activation) – ในบางแอปพลิเคชัน การแจ้งเตือนแบบพุชควรเริ่มต้นภายใต้เงื่อนไขเฉพาะเท่านั้น การเปิดใช้งานแฟล็กนี้ช่วยให้มั่นใจได้ว่า Pushwoosh SDK จะเริ่มทำงานเมื่อมีการร้องขออย่างชัดเจนเท่านั้น
การกำหนดค่าพุชเฉพาะผู้ใช้ – บางแอปพลิเคชันอาจต้องการปรับแต่งการตั้งค่าการแจ้งเตือนแบบพุชตามความชอบของผู้ใช้หรือการตั้งค่าบัญชี ด้วยการเริ่มต้นแบบ lazy Pushwoosh SDK จะเริ่มทำงานหลังจากกำหนดการกำหนดค่าที่เหมาะสมแล้วเท่านั้น
รายการคุณสมบัติทั้งหมดของ Info.plist
Anchor link toคุณสมบัติ | คำอธิบาย | ค่าที่เป็นไปได้ |
---|---|---|
Pushwoosh_APPID | ตั้งค่า ID แอปพลิเคชัน Pushwoosh สำหรับ production build | XXXXX-XXXXX ประเภท: String |
Pushwoosh_APPID_Dev | ตั้งค่า ID แอปพลิเคชัน Pushwoosh สำหรับ 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 ที่ได้รับในการพุชแบบเงียบจะถูกประมวลผลโดยอัตโนมัติ | 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 | ระดับการบันทึก Log ของ Pushwoosh SDK สำหรับรายละเอียด โปรดดูที่ การควบคุมระดับ Log | NONE / ERROR / WARNING / INFO (ค่าเริ่มต้น) / DEBUG / VERBOSE ประเภท: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | อนุญาตให้ SDK ติดตามการซื้อในแอป จำเป็นสำหรับ Customer Journey Builder | YES / NO (ค่าเริ่มต้น)ประเภท: Boolean |