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

คำถามที่พบบ่อยเกี่ยวกับ iOS SDK

คำถามที่พบบ่อยเกี่ยวกับการผสานการทำงานกับ iOS

Anchor link to

ถาม: ฉันจะติดตั้ง Pushwoosh SDK ลงในโปรเจกต์ iOS ของฉันได้อย่างไร?

Anchor link to

คุณสามารถผสานการทำงานกับ Pushwoosh SDK โดยใช้ Swift Package Manager หรือ CocoaPods ก็ได้

ถาม: ฉันจะติดตั้ง Pushwoosh SDK โดยใช้ Swift Package Manager ได้อย่างไร?

Anchor link to

ใน Xcode ไปที่ส่วน Package Dependencies และเพิ่มแพ็กเกจโดยใช้ URL ต่อไปนี้: https://github.com/Pushwoosh/Pushwoosh-XCFramework

ถาม: ฉันจะติดตั้ง Pushwoosh SDK โดยใช้ CocoaPods ได้อย่างไร?

Anchor link to

เปิด Podfile ของโปรเจกต์และเพิ่มบรรทัด pod 'PushwooshXCFramework' จากนั้นรันคำสั่ง pod install ใน terminal

ถาม: ฉันต้องเพิ่ม capabilities ใดบ้างในโปรเจกต์ของฉันเพื่อเปิดใช้งาน Push Notifications?

Anchor link to

ในส่วน Signing & Capabilities ของการตั้งค่าโปรเจกต์ คุณต้องเพิ่ม capabilities Push Notifications และ Background Modes เมื่อเพิ่ม Background Modes ต้องแน่ใจว่าคุณได้เลือกช่องสำหรับ Remote notifications

ถาม: ต้องใช้ capability เพิ่มเติมใดสำหรับ Time Sensitive Notifications?

Anchor link to

หากคุณต้องการใช้ Time Sensitive Notifications (iOS 15+) คุณต้องเพิ่ม capability Time Sensitive Notifications ด้วย

ถาม: ฉันต้องเพิ่มโค้ดสำหรับเริ่มต้นการทำงานของ Pushwoosh ที่ไหน?

Anchor link to

ต้องเพิ่มโค้ดสำหรับเริ่มต้นการทำงานในคลาส AppDelegate ของคุณ

ถาม: ฉันควรเพิ่มโค้ดสำหรับเริ่มต้นการทำงานใดใน AppDelegate ของ SwiftUI?

Anchor link to

โปรดดู ตัวอย่างโค้ด Swift ที่ให้ไว้สำหรับการผสานการทำงาน Pushwoosh ในโปรเจกต์ SwiftUI

ถาม: ฉันควรเพิ่มโค้ดสำหรับเริ่มต้นการทำงานใดใน AppDelegate ของ Swift แบบมาตรฐาน?

Anchor link to

โปรดดู ตัวอย่างโค้ด Swift ที่ให้ไว้สำหรับการผสานการทำงาน Pushwoosh ในโปรเจกต์ Swift แบบมาตรฐาน

ถาม: ฉันควรเพิ่มโค้ดสำหรับเริ่มต้นการทำงานใดใน AppDelegate ของ Objective-C?

Anchor link to

โปรดดู ตัวอย่างโค้ด Objective-C ที่ให้ไว้สำหรับการผสานการทำงาน Pushwoosh ในโปรเจกต์ Objective-C

ถาม: ฉันต้องเพิ่มคีย์ใดบ้างในไฟล์ Info.plist ของฉัน?

Anchor link to

คุณต้องเพิ่มคีย์ Pushwoosh_APPID ที่ตั้งค่าเป็น Application Code ของคุณ และคีย์ PW_API_TOKEN ที่ตั้งค่าเป็น API Token ของคุณในไฟล์ Info.plist ของแอป

ถาม: วัตถุประสงค์ของการติดตามการส่งข้อความคืออะไร?

Anchor link to

Pushwoosh รองรับการติดตามเหตุการณ์การส่งสำหรับ push notifications โดยใช้ Notification Service Extension

ถาม: ฉันจะเพิ่ม Notification Service Extension ในโปรเจกต์ของฉันได้อย่างไร?

Anchor link to

ใน Xcode ไปที่ File > New > Target… เลือก Notification Service Extension แล้วกด Next ป้อนชื่อ target แล้วกด Finish เมื่อได้รับแจ้งให้ activate ให้กด Cancel

ถาม: ฉันจะเพิ่ม Pushwoosh SDK ไปยัง Notification Service Extension ได้อย่างไร?

Anchor link to

เพิ่ม โค้ดตัวอย่าง Swift หรือ Objective-C ที่ให้ไว้ ไปยังไฟล์หลัก .swift หรือ .m ของ Notification Service Extension ของคุณ โค้ดนี้ใช้ PWNotificationExtensionManager เพื่อจัดการกับคำขอ notification

ถาม: App Groups มีวัตถุประสงค์เพื่ออะไร?

Anchor link to

จำเป็นต้องใช้ capability App Groups เพื่อให้ Notification Service Extension สามารถสื่อสารกับแอปพลิเคชันหลักได้

ถาม: ฉันจะเปิดใช้งาน App Groups สำหรับ target หลักและ Notification Service Extension ของฉันได้อย่างไร?

Anchor link to

สำหรับทั้งสอง target ไปที่ Signing & Capabilities เพิ่ม capability App Groups และสร้างกลุ่มใหม่โดยกดปุ่ม + ตรวจสอบให้แน่ใจว่าชื่อกลุ่มขึ้นต้นด้วย group. และใช้ชื่อกลุ่มเดียวกันสำหรับทั้งสอง target

ถาม: ฉันต้องเพิ่มคีย์ใดบ้างใน Info.plist ของ target หลักสำหรับ App Groups?

Anchor link to

ใน Info.plist ของ target หลักของคุณ ให้เพิ่มคีย์ PW_APP_GROUPS_NAME และตั้งค่าเป็นชื่อกลุ่ม App Groups ของคุณ

ถาม: ฉันต้องเพิ่มคีย์ใดบ้างใน Info.plist ของ Notification Service Extension ของฉัน?

Anchor link to

ใน Info.plist ของ Notification Service Extension ของคุณ ให้เพิ่มคีย์ PW_APP_GROUPS_NAME (ตั้งค่าเป็นชื่อ App Groups ของคุณ) และคีย์ Pushwoosh_APPID (ตั้งค่าเป็น Application Code ของคุณ)

ถาม: ฉันจะตรวจสอบการผสานการทำงานของ Pushwoosh ได้อย่างไร?

Anchor link to

หลังจาก build และ run โปรเจกต์ของคุณแล้ว ให้ไปที่ Pushwoosh Control Panel และส่ง push notification ไปยังแอปพลิเคชันของคุณ คุณควรจะเห็นการแจ้งเตือนปรากฏบนอุปกรณ์ของคุณ

ถาม: callbacks หลักสองตัวสำหรับจัดการ push notifications ใน Pushwoosh SDK คืออะไร?

Anchor link to

callbacks หลักสองตัวคือ onMessageReceived และ onMessageOpened

ถาม: callback onMessageReceived จะถูกเรียกใช้เมื่อใด?

Anchor link to

เมธอด onMessageReceived จะถูกเรียกเมื่อแอปพลิเคชันได้รับ push notification

ถาม: callback onMessageOpened จะถูกเรียกใช้เมื่อใด?

Anchor link to

เมธอด onMessageOpened จะถูกเรียกเมื่อผู้ใช้โต้ตอบและเปิด push notification

ถาม: ฉันจะเข้าถึง payload ของ push notification ที่ได้รับหรือเปิดได้อย่างไร?

Anchor link to

payload ของอ็อบเจกต์ PWMessage (ซึ่งถูกส่งไปยัง callbacks onMessageReceived และ onMessageOpened) สามารถเข้าถึงได้ผ่าน property payload ของมัน

ถาม: ฉันจะตั้งค่า ID ผู้ใช้ใน Pushwoosh ได้อย่างไร?

Anchor link to

ใช้เมธอด setUserId(_:) ของอ็อบเจกต์ Pushwoosh.sharedInstance() โดยส่ง ID ของผู้ใช้เป็นอาร์กิวเมนต์

ถาม: ฉันจะตั้งค่าที่อยู่อีเมลของผู้ใช้ใน Pushwoosh ได้อย่างไร?

Anchor link to

ใช้เมธอด setEmail(_:) ของอ็อบเจกต์ Pushwoosh.sharedInstance() โดยระบุอีเมลของผู้ใช้

ฉันจะตั้งค่าข้อมูลผู้ใช้เพิ่มเติมเป็นแท็กใน Pushwoosh ได้อย่างไร?

Anchor link to

ใช้เมธอด setTags(_:) ของอ็อบเจกต์ Pushwoosh.sharedInstance() โดยส่ง dictionary ที่มีคีย์เป็นชื่อแท็กและค่าเป็นค่าแท็กที่สอดคล้องกัน

ฉันจะติดตามกิจกรรมของผู้ใช้พร้อมกับแอตทริบิวต์เพิ่มเติมได้อย่างไร?**

Anchor link to

ใช้เมธอด postEvent(_:withAttributes:) ของ PWInAppManager.shared() โดยระบุชื่อเหตุการณ์ (เช่น "login") และ dictionary ของแอตทริบิวต์ (เช่น "name", "last_login")

ถาม: ฉันจะติดตามเหตุการณ์การซื้อของผู้ใช้พร้อมกับรายละเอียดสินค้าได้อย่างไร?

Anchor link to

ใช้เมธอด postEvent(_:withAttributes:) ของ PWInAppManager.shared() โดยใช้ชื่อเหตุการณ์ "purchase" และ dictionary ที่มีรายละเอียดสินค้า เช่น "product_id", "product_name", "price", และ "quantity"

ถาม: ฉันจะตั้งค่า delegate เพื่อจัดการการนำเสนอ rich media ได้อย่างไร?

Anchor link to

ใน view controller ของคุณหรือคลาสอื่นที่เหมาะสม ให้สอดคล้องกับโปรโตคอล PWRichMediaPresentingDelegate และตั้งค่า property delegate ของ PWRichMediaManager.shared() เป็น instance ที่สอดคล้องของคุณ

ถาม: ฉันจะกำหนดค่าสไตล์การนำเสนอของ rich media ได้อย่างไร?

Anchor link to

ใช้อ็อบเจกต์ PWModalWindowConfiguration.shared() เพื่อกำหนดค่า property ต่างๆ เช่น ตำแหน่งของหน้าต่างโมดอล และแอนิเมชันการนำเสนอ/ปิด โดยใช้เมธอด configureModalWindow(with:present:dismiss:)

ถาม: ฉันสามารถเข้าถึงข้อมูลใดในเมธอด delegate ของ rich media ได้บ้าง?**

Anchor link to

เมธอด delegate ให้การเข้าถึงอ็อบเจกต์ PWRichMedia ซึ่งมีข้อมูลเกี่ยวกับเนื้อหา rich media รวมถึง pushPayload ของมัน เมธอด presentingDidFailForRichMedia:withError: ยังให้อ็อบเจกต์ Error ที่อธิบายความล้มเหลวด้วย

การแก้ไขปัญหา

Anchor link to

ถาม: ข้อผิดพลาด “Your provisioning profile does not have APS entry”

Anchor link to

หากคุณเห็นข้อความแสดงข้อผิดพลาด “Your provisioning profile does not have APS entry.” โปรดตรวจสอบให้แน่ใจว่า provisioning profile ของคุณรองรับพุชและมีสตริง aps-environment พร้อมค่า production หรือ development อยู่ในนั้น วิธีที่ง่ายที่สุดในการตรวจสอบคือการเปิดไฟล์ mobile provisioning profile ในโปรแกรมแก้ไขข้อความใดๆ และมองหาสตริง aps-environment มันควรจะอยู่ที่นั่น

หากมีอยู่แล้วแต่คุณยังคงได้รับข้อผิดพลาด แสดงว่า XCode ยังคงเลือกโปรไฟล์ที่ “ไม่รองรับพุช” โปรดตรวจสอบให้แน่ใจว่าคุณ sign ด้วยโปรไฟล์ที่ถูกต้อง - บางครั้งหากคุณมีสองโปรไฟล์สำหรับ App ID เดียวกัน XCode อาจทำให้เกิดความสับสนและ sign ด้วยโปรไฟล์เก่า

ขั้นตอนที่แนะนำคือ:

  1. ลบ โปรไฟล์ XCode ทั้งหมด;
  2. เพิ่มโปรไฟล์ใหม่เพียงโปรไฟล์เดียว;
  3. Rebuild แอป

ถาม: iOS push token และ hwid มีลักษณะอย่างไร?

Anchor link to

iOS device push token เป็นสตริงที่มีสัญลักษณ์เลขฐานสิบหก 64 ตัวอย่างของ Push token:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
ตรวจสอบให้แน่ใจว่า iOS push token ที่คุณใช้เมื่อกำหนดเป้าหมายไปยังอุปกรณ์เฉพาะในคำขอ API ของคุณเป็น ตัวพิมพ์เล็ก

Pushwoosh ใช้ IDFV เป็น HWID ของอุปกรณ์ โปรดทราบว่าค่านี้อาจเปลี่ยนแปลงได้ในกรณีที่ผู้ใช้ติดตั้งแอปทั้งหมดจากผู้จำหน่ายรายเดียวกันใหม่

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

ถาม: ฉันจะเปิดและปิดแบนเนอร์ขณะที่แอปของฉันทำงานอยู่ได้อย่างไร?

Anchor link to

โดยค่าเริ่มต้น iOS SDK ล่าสุดของเราจะแสดงแบนเนอร์การแจ้งเตือนเมื่อแอปทำงานอยู่ในเบื้องหน้า (foreground)
คุณสามารถควบคุมพฤติกรรมนี้ได้โดยการเปลี่ยนแฟล็กต่อไปนี้ใน Info.plist:

แฟล็ก Pushwoosh_ALERT_TYPE – ประเภทสตริง ค่าที่เป็นไปได้คือ:

  • BANNER – ค่าเริ่มต้น แสดงการแจ้งเตือนในแอปแบบแบนเนอร์
  • ALERT – การแจ้งเตือนแบบ alert
  • NONE – ไม่แสดงการแจ้งเตือนเมื่อแอปอยู่ในเบื้องหน้า

ถาม: ฉันจะรับ iOS device push token ของฉันเพื่อใช้ใน Test Devices ได้อย่างไร?

Anchor link to

หากต้องการรับ iOS device push token ของคุณ,

  1. เปิด Xcode => Devices & Simulators;
  2. เชื่อมต่ออุปกรณ์ทดสอบเข้ากับคอมพิวเตอร์ของคุณ;
  3. เลือกอุปกรณ์ที่เชื่อมต่อของคุณในรายการอุปกรณ์ทางด้านซ้าย;
  4. คลิกปุ่ม Open Console

เปิดแอปพลิเคชันที่คุณต้องการ device push token และค้นหา device push token ที่เป็นอักขระเลขฐานสิบหก 64 ตัวของคุณในบรรทัด “Registered for push notifications”:

ถาม: ทำไม badge ถึงไม่ถูกล้างหลังจากที่ฉันถอนการติดตั้งแอปแล้วติดตั้งใหม่ในเวลาอันสั้น?

Anchor link to

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