# การตั้งค่า Badges

<Aside type="note">
หากต้องการตั้งค่า badges สำหรับปลั๊กอิน Cordova หรือ React Native โปรดดูคู่มือที่เกี่ยวข้อง:

* [Badges สำหรับ Cordova](/th/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/setting-up-badges-for-cordova)
* [Badges สำหรับ React Native](/th/developer/pushwoosh-sdk/cross-platform-frameworks/react-native/setting-up-badges-for-react-native)
</Aside>

ตั้งแต่ Pushwoosh iOS SDK เวอร์ชัน 6.4.0 เป็นต้นไป กระบวนการจัดการและตั้งค่า badges ผ่าน push notifications ได้มีการเปลี่ยนแปลง

หากก่อนหน้านี้คุณใช้หมายเลข badges เพื่อระบุจำนวน push notifications ที่ได้รับในแอปพลิเคชันของคุณ คุณจะต้องย้ายไปใช้ iOS SDK เวอร์ชันใหม่ (6.4.0 หรือใหม่กว่า) เวอร์ชันเก่าจะยังคงรองรับจนถึงสิ้นไตรมาสที่สองของปี 2022

## วิธีการตั้งค่า badges

ในการตั้งค่า badges ให้ทำตามขั้นตอนด้านล่าง:

1. เพิ่ม Notification Service Extension (File -> New -> Target...)

<img src="/shared-7.webp" alt=""/>

2. เลือก "Notification Service Extension"

<img src="/ios-push-notifications-setting-up-badges-1.webp" alt="การเพิ่ม Notification Service Extension"/>

3. แทนที่คลาส `NotificationService` ที่สร้างขึ้นด้วยคลาสย่อยของ `PushwooshNotificationServiceExtension` โดย Pushwoosh จะจัดการเรื่องการนับ badge, อีเวนต์การส่ง, การดาวน์โหลดไฟล์แนบ และการสำรองข้อมูลเมื่อหมดเวลาให้คุณ:

<Tabs>
<TabItem label="Swift">
```swift
import PushwooshFramework

class NotificationService: PushwooshNotificationServiceExtension {}
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
#import <PushwooshFramework/PushwooshFramework.h>

@interface NotificationService : PushwooshNotificationServiceExtension
@end

@implementation NotificationService
@end
```
</TabItem>
</Tabs>

4. เพิ่มความสามารถ App Groups ไปยัง **targets** ทั้งสอง — แอปหลักและ Notification Service Extension — และใช้ App Group เดียวกันสำหรับทั้งสองอย่าง

5. เพิ่ม App Group ID ไปยังไฟล์ **info.plist** ของแอปหลัก:

```
<key>PW_APP_GROUPS_NAME</key>
<string>group.com.example.demoapp_example</string>
```

<img src="/shared-12.webp" alt="Info.plist"/>

extension จะสืบทอดค่านี้มาจากแอปโฮสต์ ดังนั้นคุณไม่จำเป็นต้องใส่ซ้ำใน `info.plist` ของ extension — ให้เพิ่มเข้าไปในกรณีที่ต้องการแทนที่ค่าของโฮสต์เท่านั้น

หากคุณไม่ต้องการใช้ไฟล์ **info.plist** คุณสามารถระบุ App Group ในโค้ดได้โดยการ override `pushwooshAppGroupsName` ในคลาส NotificationServiceExtension ของคุณ:

<Tabs>
<TabItem label="Swift">
```swift
override func pushwooshAppGroupsName() -> String? {
    "group.com.example.demoapp_example"
}
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
- (NSString *)pushwooshAppGroupsName {
    return @"group.com.example.demoapp_example";
}
```
</TabItem>
</Tabs>

<LinkCard title="ตัวอย่าง" href="https://github.com/Pushwoosh/pushwoosh-quickstart-ios/tree/main/badges/badges" />


## การส่ง push notification พร้อม badges

หากคุณต้องการส่ง push notification พร้อม badges จาก Pushwoosh Control Panel เพียงแค่เพิ่มค่า badge ที่ต้องการลงในช่องข้อความ **badges** ดังที่แสดงในภาพด้านล่าง:

<img src="/ios-push-notifications-setting-up-badges-5.webp" alt="ค่า Badges"/>

<Aside type="note">
คุณสามารถใช้รูปแบบค่าต่อไปนี้เพื่อส่ง badges ได้อย่างถูกต้อง: **+1, -1 หรือ 5** หากคุณต้องการเพิ่มค่า badge ให้ใช้เครื่องหมาย **"+"**, หากคุณต้องการลดค่า badges ให้ใช้เครื่องหมาย **"-"** คุณยังสามารถกำหนดจำนวนที่แน่นอนได้โดยใช้ เช่น **5** โดยไม่มีเครื่องหมาย
</Aside>

## แบ่งปันความคิดเห็นของคุณกับเรา

ความคิดเห็นของคุณช่วยให้เราสร้างประสบการณ์ที่ดีขึ้น เราจึงยินดีรับฟังหากคุณมีปัญหาใดๆ ในระหว่างขั้นตอนการผสานรวม SDK หากคุณประสบปัญหาใดๆ โปรดอย่าลังเลที่จะแบ่งปันความคิดเห็นของคุณกับเรา [ผ่านแบบฟอร์มนี้](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform)