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

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

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

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

Anchor link to

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

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

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

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

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

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

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

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

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

  3. การกำหนดค่า Push เฉพาะผู้ใช้ – บางแอปพลิเคชันอาจต้องการปรับแต่งการตั้งค่าการแจ้งเตือนแบบ push ตามความต้องการของผู้ใช้หรือการตั้งค่าบัญชี ด้วยการเริ่มต้นแบบ 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