คู่มือการผสานรวมขั้นสูงสำหรับ iOS SDK 7.0+
ส่วนนี้ให้ข้อมูลเกี่ยวกับการผสานรวมขั้นสูงของ Pushwoosh iOS SDK
Background modes
Anchor link toเพื่อเปิดใช้งานฟังก์ชันนี้ คุณต้องเพิ่ม Background Modes ลงในโปรเจกต์ของคุณ
ขั้นตอนการเปิดใช้งาน 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 จะแสดงแบนเนอร์การแจ้งเตือนเมื่อแอปทำงานในเบื้องหน้า (foreground)
คุณสามารถควบคุมพฤติกรรมนี้ได้โดยการตั้งค่า boolean flag ต่อไปนี้ในโค้ดของคุณ (เช่น ใน AppDelegate ของคุณ):
// Set false to disable foreground notifications, true to enable itPushwoosh.configure.showPushnotificationAlert = true// Set 0 to disable foreground notifications, 1 to enable it[[Pushwoosh configure] setShowPushnotificationAlert:0];ระดับการบันทึก (Log level)
Anchor link toPushwoosh iOS SDK รองรับระดับการบันทึก (logging levels) ดังต่อไปนี้:
NONE- ไม่มี log จาก SDKERROR- แสดงเฉพาะข้อความข้อผิดพลาดใน consoleWARNING- แสดงคำเตือนเพิ่มเติมจากข้อผิดพลาดINFO- รวมข้อความข้อมูล (การตั้งค่าเริ่มต้น)DEBUG- รวมข้อมูลการดีบักอย่างละเอียด
โดยค่าเริ่มต้น ระดับการบันทึกจะถูกตั้งค่าเป็น INFO เพื่อให้แน่ใจว่า SDK ให้ข้อมูลที่เกี่ยวข้องโดยไม่ทำให้ developer console รก
หากต้องการแก้ไขระดับการบันทึก ให้อัปเดตคีย์ 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 ของคุณเอง (ตัวอย่างเช่น สำหรับ local notifications) คุณควรแจ้งให้ 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)) { // Handle your notification completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // Handle your notification completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Handle your message completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Handle your message completionHandler(); }}Pushwoosh 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/>กรณีการใช้งาน (Use Cases)
-
การเริ่มต้น SDK ที่ควบคุมได้ – แฟล็ก Pushwoosh_LAZY_INITIALIZATION ช่วยให้สามารถชะลอการเริ่มต้นของ Pushwoosh SDK ทำให้สามารถควบคุมเวลาที่บริการ push จะเปิดใช้งานได้มากขึ้น
-
การเปิดใช้งาน Push แบบรอการตัดบัญชี – ในบางแอปพลิเคชัน push notifications ควรเริ่มต้นภายใต้เงื่อนไขที่เฉพาะเจาะจงเท่านั้น การเปิดใช้งานแฟล็กนี้ช่วยให้แน่ใจว่า Pushwoosh SDK จะเริ่มทำงานเมื่อมีการร้องขออย่างชัดเจนเท่านั้น
-
การกำหนดค่า Push เฉพาะผู้ใช้ – บางแอปพลิเคชันอาจต้องการปรับแต่งการตั้งค่า push notification ตามความต้องการของผู้ใช้หรือการตั้งค่าบัญชี ด้วย lazy initialization, Pushwoosh SDK จะเริ่มทำงานหลังจากที่กำหนดค่าที่เหมาะสมแล้วเท่านั้น
รายการคุณสมบัติ Info.plist ทั้งหมด
Anchor link to| คุณสมบัติ (Property) | คำอธิบาย (Description) | ค่าที่เป็นไปได้ (Possible Values) |
|---|---|---|
Pushwoosh_APPID | ตั้งค่า Pushwoosh application ID สำหรับ production build | XXXXX-XXXXX ประเภท: String |
Pushwoosh_APPID_Dev | ตั้งค่า Pushwoosh application ID สำหรับ development build | XXXXX-XXXXX ประเภท: String |
Pushwoosh_SHOW_ALERT | แสดงการแจ้งเตือนในเบื้องหน้า (foreground 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 push จะถูกประมวลผลโดยอัตโนมัติ | 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_ALLOW_COLLECTING_SCREEN_NAME | อนุญาตให้ SDK แนบชื่อหน้าจอปัจจุบันไปกับอีเวนต์ PW_ScreenOpen, PW_UserIdle และ PW_ApplicationExit | 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 |
บนแพลตฟอร์มที่ไม่สามารถแก้ไข Info.plist ได้ (Cordova, OutSystems) ให้ใช้โค้ดที่เทียบเท่ากันในขณะรันไทม์แทน: Pushwoosh.configure.setAllowCollectingScreenName: