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

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

ส่วนนี้ให้ข้อมูลเกี่ยวกับการผสานรวมขั้นสูงของ 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 โดยทำเครื่องหมายในช่อง

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

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

Anchor link to

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

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

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

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

Anchor link to

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

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

จากนั้น ให้ 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 จะป้องกันการเริ่มต้น Pushwoosh SDK โดยอัตโนมัติเมื่อแอปพลิเคชันเริ่มทำงาน ซึ่งช่วยให้สามารถควบคุมเวลาที่บริการของ Pushwoosh SDK จะเริ่มทำงานได้มากขึ้น

เมื่อเปิดใช้งานแฟล็กนี้ Pushwoosh SDK จะไม่เริ่มบริการจนกว่าจะมีการเรียกใช้เมธอดของ Pushwoosh iOS SDK อย่างชัดเจน

เพิ่มรายการต่อไปนี้ใน Info.plist:

<key>Pushwoosh_LAZY_INITIALIZATION</key>
<true/>

กรณีการใช้งาน

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

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

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

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

Anchor link to
คุณสมบัติคำอธิบายค่าที่เป็นไปได้
Pushwoosh_APPIDตั้งค่า Pushwoosh application ID สำหรับ production buildXXXXX-XXXXX
ประเภท: String
Pushwoosh_APPID_Devตั้งค่า Pushwoosh application ID สำหรับ 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 ที่ได้รับใน silent pushes จะถูกประมวลผลโดยอัตโนมัติ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ระดับการบันทึกของ Pushwoosh SDK สำหรับรายละเอียด โปรดดูที่ การควบคุมระดับการบันทึกNONE / ERROR / WARNING / INFO (ค่าเริ่มต้น) / DEBUG / VERBOSE
ประเภท: String
Pushwoosh_PURCHASE_TRACKING_ENABLEDอนุญาตให้ SDK ติดตามการซื้อในแอป จำเป็นสำหรับ Customer Journey BuilderYES / NO (ค่าเริ่มต้น)
ประเภท: Boolean