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

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

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

โหมดพื้นหลัง (Background modes)

Anchor link to

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

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

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

UNNotificationCenterDelegate แบบกำหนดเอง

Anchor link to

หากคุณต้องการใช้ UNNotificationCenterDelegate ของคุณเอง (ตัวอย่างเช่น สำหรับการแจ้งเตือนในเครื่อง) คุณควรแจ้งให้ Pushwoosh SDK ทราบเพื่อการทำงานที่เหมาะสม คุณสามารถทำได้ด้วยคุณสมบัติ notificationCenterDelegateProxy ของอินสแตนซ์ Pushwoosh:

Pushwoosh.configure?.notificationCenterDelegateProxy.add(my_delegate)

จากนั้น ให้ใช้วิธีการ 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. การเปิดใช้งานพุชแบบรอการตัดบัญชี – ในบางแอปพลิเคชัน การแจ้งเตือนแบบพุชควรเริ่มต้นภายใต้เงื่อนไขเฉพาะเท่านั้น การเปิดใช้งานแฟล็กนี้ช่วยให้แน่ใจว่า Pushwoosh SDK จะเริ่มทำงานเมื่อมีการร้องขออย่างชัดเจนเท่านั้น

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

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

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