ข้ามไปยังเนื้อหา

คู่มือการผสานการทำงานขั้นสูงสำหรับ iOS SDK

ส่วนนี้ให้ข้อมูลเกี่ยวกับการผสานการทำงานขั้นสูงของ Pushwoosh iOS SDK

โหมดเบื้องหลัง (Background modes)

Anchor link to

เพื่อเปิดใช้งานฟังก์ชันนี้ คุณต้องเพิ่ม Background Modes ในโปรเจกต์ของคุณ

ขั้นตอนการเปิดใช้งานโหมดเบื้องหลัง

Anchor link to
  1. เปิดโปรเจกต์ของคุณใน Xcode และเลือกใน Project Navigator
  2. เลือก target ของแอปของคุณจากแผงด้านซ้าย
  3. ไปที่แท็บ Signing & Capabilities
  4. คลิกปุ่ม + Capability ที่มุมบนซ้าย
  5. ค้นหาและเลือก Background Modes จากรายการ
  6. ในส่วน Background Modes ให้เปิดใช้งาน Remote notifications โดยทำเครื่องหมายที่ช่อง

เมื่อเสร็จสิ้น แอปของคุณจะสามารถจัดการการแจ้งเตือนแบบพุช รวมถึงแบบเงียบได้ในขณะที่ทำงานในเบื้องหลัง

โหมดเบื้องหน้า (Foreground modes)

Anchor link to

โดยค่าเริ่มต้น Pushwoosh iOS SDK จะแสดงแบนเนอร์การแจ้งเตือนเมื่อแอปทำงานในเบื้องหน้า

คุณสามารถควบคุมพฤติกรรมนี้ได้โดยการตั้งค่า boolean flag ต่อไปนี้ในโค้ดของคุณ (เช่น ใน AppDelegate ของคุณ):

// ตั้งค่าเป็น false เพื่อปิดการแจ้งเตือนเบื้องหน้า, true เพื่อเปิดใช้งาน
Pushwoosh.sharedInstance().showPushnotificationAlert = true

ระดับการบันทึก Log (Log level)

Anchor link to

Pushwoosh iOS SDK รองรับระดับการบันทึก Log ต่อไปนี้:

  • NONE - ไม่มี log จาก SDK
  • ERROR - แสดงเฉพาะข้อความแสดงข้อผิดพลาดในคอนโซล
  • 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)

จากนั้น 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()
}
}

การเริ่มต้น 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)

  1. การเริ่มต้น SDK ที่มีการควบคุม – แฟล็ก Pushwoosh_LAZY_INITIALIZATION ช่วยให้สามารถหน่วงเวลาการเริ่มต้นของ Pushwoosh SDK ทำให้สามารถควบคุมเวลาที่บริการพุชจะถูกเปิดใช้งานได้มากขึ้น

  2. การเปิดใช้งานพุชแบบรอการตัดบัญชี (Deferred Push Activation) – ในบางแอปพลิเคชัน การแจ้งเตือนแบบพุชควรเริ่มต้นภายใต้เงื่อนไขเฉพาะเท่านั้น การเปิดใช้งานแฟล็กนี้ช่วยให้มั่นใจได้ว่า Pushwoosh SDK จะเริ่มทำงานเมื่อมีการร้องขออย่างชัดเจนเท่านั้น

  3. การกำหนดค่าพุชเฉพาะผู้ใช้ – บางแอปพลิเคชันอาจต้องการปรับแต่งการตั้งค่าการแจ้งเตือนแบบพุชตามความชอบของผู้ใช้หรือการตั้งค่าบัญชี ด้วยการเริ่มต้นแบบ lazy Pushwoosh SDK จะเริ่มทำงานหลังจากกำหนดการกำหนดค่าที่เหมาะสมแล้วเท่านั้น

รายการคุณสมบัติทั้งหมดของ Info.plist

Anchor link to
คุณสมบัติคำอธิบายค่าที่เป็นไปได้
Pushwoosh_APPIDตั้งค่า ID แอปพลิเคชัน Pushwoosh สำหรับ production buildXXXXX-XXXXX
ประเภท: String
Pushwoosh_APPID_Devตั้งค่า ID แอปพลิเคชัน Pushwoosh สำหรับ development buildXXXXX-XXXXX
ประเภท: String
Pushwoosh_SHOW_ALERTแสดงการแจ้งเตือนเบื้องหน้าYES (ค่าเริ่มต้น) / NO
ประเภท: Boolean
Pushwoosh_ALERT_TYPEตั้งค่ารูปแบบการแจ้งเตือนBANNER (ค่าเริ่มต้น) / ALERT / NONE
ประเภท: String
Pushwoosh_BASEURLเขียนทับ URL พื้นฐานของเซิร์ฟเวอร์ Pushwooshhttps://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 ส่งคำขอเครือข่ายไปยังเซิร์ฟเวอร์ PushwooshYES (ค่าเริ่มต้น) / 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 สำหรับรายละเอียด โปรดดูที่ การควบคุมระดับ LogNONE / ERROR / WARNING / INFO (ค่าเริ่มต้น) / DEBUG / VERBOSE
ประเภท: String
Pushwoosh_PURCHASE_TRACKING_ENABLEDอนุญาตให้ SDK ติดตามการซื้อในแอป จำเป็นสำหรับ Customer Journey BuilderYES / NO (ค่าเริ่มต้น)
ประเภท: Boolean