การแจ้งเตือนแบบพุช iOS: จะตรวจสอบได้อย่างไรว่าผู้ใช้แตะการแจ้งเตือนเมื่อแอปอยู่ในพื้นหลัง


116

มีเธรด stackoverflow มากมายเกี่ยวกับหัวข้อนี้ แต่ฉันยังไม่พบวิธีแก้ปัญหาที่ดี

หากแอปไม่ได้อยู่ในพื้นหลังที่ฉันสามารถตรวจสอบlaunchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]ในapplication:didFinishLaunchingWithOptions:การเรียกร้องให้ดูว่ามันเปิดจากการแจ้งเตือน

หากแอปอยู่เบื้องหลังโพสต์ทั้งหมดแนะนำให้ใช้application:didReceiveRemoteNotification:และตรวจสอบสถานะแอปพลิเคชัน แต่จากที่ฉันทดลอง (และตามชื่อของ API นี้) วิธีนี้จะถูกเรียกเมื่อได้รับการแจ้งเตือนแทนที่จะแตะ

ดังนั้นปัญหาคือหากเปิดแอปแล้วจึงเป็นพื้นหลังและคุณรู้ว่าได้รับการแจ้งเตือนจากapplication:didReceiveNotification( application:didFinishLaunchWithOptions:จะไม่เรียกใช้ ณ จุดนี้) คุณจะรู้ได้อย่างไรว่าผู้ใช้กลับมาใช้งานแอปต่อโดยแตะที่การแจ้งเตือนหรือเพียงแค่แตะ ไอคอนแอพ? เนื่องจากหากผู้ใช้แตะการแจ้งเตือนความคาดหวังคือการเปิดหน้าที่กล่าวถึงในการแจ้งเตือนนั้น มิฉะนั้นก็ไม่ควร

ฉันสามารถใช้handleActionWithIdentifierสำหรับการแจ้งเตือนการดำเนินการที่กำหนดเองได้ แต่สิ่งนี้จะถูกทริกเกอร์ก็ต่อเมื่อมีการแตะปุ่มการทำงานที่กำหนดเองไม่ใช่เมื่อผู้ใช้แตะที่เนื้อหาหลักของการแจ้งเตือน

ขอบคุณ

แก้ไข:

หลังจากอ่านคำตอบด้านล่างฉันคิดว่าด้วยวิธีนี้ฉันสามารถชี้แจงคำถามของฉันได้:

เราจะแยกแยะสถานการณ์ 2 สถานการณ์นี้ได้อย่างไร:

(A) 1. แอปไปที่พื้นหลัง 2. ได้รับการแจ้งเตือน; 3. ผู้ใช้แตะที่การแจ้งเตือน 4. แอพเข้าสู่เบื้องหน้า

(B) 1. แอปไปที่พื้นหลัง 2. ได้รับการแจ้งเตือน; 3. ผู้ใช้ละเว้นการแจ้งเตือนและแตะที่ไอคอนแอพในภายหลัง 4. แอพเข้าสู่เบื้องหน้า

เนื่องจากapplication:didReceiveRemoteNotification:ถูกทริกเกอร์ในทั้งสองกรณีในขั้นตอนที่ 2

หรือควรapplication:didReceiveRemoteNotification:จะถูกเรียกใช้ในขั้นตอนที่ 3 สำหรับ (A) เท่านั้น แต่ฉันกำหนดค่าแอปผิดอย่างใดฉันจึงเห็นในขั้นตอนที่ 2


ใช้ค่าพจนานุกรมที่กำหนดเองสำหรับน้ำหนักบรรทุกของคุณและดำเนินการตามนั้น ค่อนข้างเรียบง่าย
soulshined

@soulshined พจนานุกรมใน payload สามารถแสดงว่าผู้ใช้แตะการแจ้งเตือนใช่ไหม? เช่นเพื่อนของคุณ A โพสต์บทความ B คุณสามารถพูดว่า {user: A, article: B} ใน payload ในขณะที่แอปทำงานอยู่เบื้องหลังและคุณได้รับ didReceiveRemoteNotification คุณจะรู้ได้อย่างไรว่าแอปกลับมาทำงานอีกครั้งคุณควรแสดงบทความหรือไม่
Bao Lei

2
@soulshined ฉันได้อ่านเอกสารและได้ให้ความรู้กับตัวเองว่าReceiveRemoteNotificationทำอะไร คุณอ่านคำถามของฉันจริงหรือ ตามเอกสารอย่างเป็นทางการของ Apple didReceiveRemoteNotification "บอกผู้รับมอบสิทธิ์ว่าแอปที่ทำงานอยู่ได้รับการแจ้งเตือนจากระยะไกล" ฉันกำลังถามว่าอะไรคือวิธีที่ดีในการบอกว่าผู้ใช้แตะการแจ้งเตือนหรือไม่ ลิงก์ SO ที่คุณอ้างถึงมีไว้สำหรับเมื่อแอปเปิดตัวตั้งแต่เริ่มต้นฉันกำลังถามสถานการณ์เมื่อแอปอยู่ในพื้นหลัง
Bao Lei


1
@soulshined ตกลงบางทีฉันไม่ได้ระบุชัดเจนพอ ฉันหมายความว่าถ้าแอปออกจากการทำงานโดยสมบูรณ์ไม่ใช่ในพื้นหลังใช่ didFinishLaunching จะถูกเรียก แต่ถ้าคุณเปิดแอปของคุณแล้วทำพื้นหลังแอปและตอนนี้มีการแจ้งเตือนเข้ามาและผู้ใช้แตะที่การแจ้งเตือนและตอนนี้ didFinishLaunching จะไม่ถูกเรียกอีก แทน applicationWillEnterForeground และ applicationDidBecomeActive คุณจะบอกได้อย่างไรว่าแอปกำลังเข้าสู่เบื้องหน้าเนื่องจากผู้ใช้แตะที่การแจ้งเตือนหรือไอคอนแอป
Bao Lei

คำตอบ:


102

ตกลงในที่สุดฉันก็คิดออก

ในการตั้งค่าเป้าหมายแท็บความสามารถ➝โหมดพื้นหลังหากคุณตรวจสอบ "การแจ้งเตือนระยะไกล" ระบบapplication:didReceiveRemoteNotification:จะทำงานทันทีที่มีการแจ้งเตือนมาถึง (ตราบเท่าที่แอปอยู่ในพื้นหลัง) และในกรณีนี้จะไม่มีทางบอกได้ว่า ผู้ใช้จะแตะที่การแจ้งเตือน

หากคุณยกเลิกการเลือกช่องนั้นระบบapplication:didReceiveRemoteNotification:จะเปิดใช้งานเมื่อคุณแตะที่การแจ้งเตือนเท่านั้น

เป็นเรื่องแปลกเล็กน้อยที่การทำเครื่องหมายในช่องนี้จะเปลี่ยนวิธีการทำงานของวิธีการมอบหมายงานแอปหนึ่ง ๆ จะดีกว่าถ้าเลือกช่องนั้น Apple ใช้วิธีการมอบสิทธิ์สองวิธีที่แตกต่างกันสำหรับการรับการแจ้งเตือนและการแตะการแจ้งเตือน ฉันคิดว่านักพัฒนาส่วนใหญ่มักต้องการทราบว่ามีการแตะการแจ้งเตือนหรือไม่

หวังว่าจะเป็นประโยชน์สำหรับทุกคนที่พบปัญหานี้ Apple ยังไม่ได้บันทึกไว้อย่างชัดเจนที่นี่ดังนั้นฉันจึงต้องใช้เวลาสักพักในการคิดออก

ใส่คำอธิบายภาพที่นี่


6
ฉันตั้งโหมดพื้นหลังเป็น "ปิด" โดยสมบูรณ์ แต่ยังคงได้รับการแจ้งเตือนเมื่อมีการแจ้งเตือนมาพร้อมกับแอปในโหมดพื้นหลัง
Gottfried

5
ที่ดี! สิ่งนี้ช่วยฉันได้ น่าเสียดายที่ฉันต้องปิดการแจ้งเตือนระยะไกล ฉันต้องการดึงข้อมูลล่วงหน้าเมื่อมีการแจ้งเตือนแบบพุชและตรวจพบการแตะของผู้ใช้ ฉันไม่สามารถหาวิธีที่จะบรรลุสิ่งนี้ได้
Peter Fennema

1
ฉันตั้งค่าโหมดพื้นหลังเป็นโหมด "เปิด" และเปิดใช้งานการแจ้งเตือนระยะไกล ยังไม่สามารถตรวจพบเหตุการณ์การแจ้งเตือน
kalim sayyad

1
ฉันมีปัญหาเดียวกันโหมดพื้นหลังถูกตั้งค่าเป็น "เปิด" และเปิดใช้งานการแจ้งเตือนระยะไกล แต่ยังไม่ได้รับการแจ้งเตือนเมื่อมีการแจ้งเตือนไปยังแอปในโหมดพื้นหลัง
Swapnil Dhotre

@Bao - ฉันคิดว่ามันจะทำให้ถูกปฏิเสธใน Appstore เนื่องจากตัวเลือกนี้ใช้เพื่อดาวน์โหลดเนื้อหาที่เกี่ยวข้องกับการแจ้งเตือนในพื้นหลัง ดังนั้นหากคุณไม่ได้ดาวน์โหลดเนื้อหาใด ๆ Apple อาจปฏิเสธแอปของคุณ developer.apple.com/library/ios/documentation/iPhone/Conceptual/…
niks

69

ฉันกำลังมองหาสิ่งเดียวกับคุณและพบวิธีแก้ปัญหาที่ไม่ต้องใช้การแจ้งเตือนระยะไกลในการทำเครื่องหมาย

ในการตรวจสอบว่าผู้ใช้แตะหรือแอปอยู่เบื้องหลังหรือทำงานอยู่คุณเพียงแค่ตรวจสอบสถานะแอปพลิเคชันใน

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{

    if(application.applicationState == UIApplicationStateActive) {

        //app is currently active, can update badges count here

    }else if(application.applicationState == UIApplicationStateBackground){

        //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here

    }else if(application.applicationState == UIApplicationStateInactive){

        //app is transitioning from background to foreground (user taps notification), do what you need when user taps here

    }

สำหรับข้อมูลเพิ่มเติมตรวจสอบ:

UIKit Framework Reference> UIApplication Class Reference> UIApplicationState


10
สิ่งที่แอปเป็น UIApplicationStateInactive อันเป็นผลมาจากการที่ผู้ใช้มีส่วนร่วมกับศูนย์การแจ้งเตือน (ปัดจากด้านบน) หรือศูนย์ควบคุม (ปัดจากด้านล่าง) ในขณะที่แอปอยู่บนหน้าจอ เห็นได้ชัดว่าไม่มีวิธีใดที่จะบอกได้ว่า APNS ได้รับในสถานะไม่ได้ใช้งานหรือผู้ใช้แตะมันจริงๆ
Kostia Kim

1
@KostiaKim คุณกำลังขวา แต่ที่เป็นกรณีสุดขอบ ... ไม่ใช่ว่าคำตอบนี้เป็นที่ถูกต้องที่สุดในแง่ของการแยกระหว่างแอปในเบื้องหน้า ... ผู้ใช้แตะ ... app ในพื้นหลัง
น้ำผึ้ง

ขอบคุณการทำให้ทุกอย่างเข้าใจผิด โปรดจำไว้ว่าเพื่อให้สามารถเรียกวิธีการมอบหมายได้เมื่อแอปทำงานอยู่เบื้องหลังการแจ้งเตือนแบบพุชจะต้องมีcontent-availableคีย์ แต่การแจ้งเตือนจะต้องเงียบ (เช่นไม่รวมเสียงหรือตราสัญลักษณ์) ตามที่ระบุไว้ในเอกสารอย่างเป็นทางการ .
Nickkk

1
@KostiaKim ฉันสามารถแก้ไขปัญหาที่ไม่รู้ว่าศูนย์ควบคุมเปิดอยู่หรือไม่หรือผู้ใช้แตะการแจ้งเตือนจริงหรือไม่โดยการเพิ่มบูลีนที่ตั้งค่าเป็นจริงในfunc applicationDidEnterBackground(_ application: UIApplication)และเท็จในสิ่งfunc applicationDidBecomeActive(_ application: UIApplication)นี้ทำให้ฉันสามารถแสดงในแอปได้ การแจ้งเตือนเมื่อแอปไม่ทำงานเนื่องจากศูนย์ควบคุมหรือรายการแจ้งเตือน
DatForis

3
มันทำให้ฉันเข้าใจว่าทำไม Apple ไม่นำเสนอเหตุการณ์อื่นหรือเพียงแค่เพิ่มธงในข้อมูลเมตาเพื่อระบุว่าผู้ใช้โต้ตอบกับการแจ้งเตือนจริง การต้อง 'อนุมาน' ว่าผู้ใช้ดำเนินการตามข้อมูลโดยรอบเกี่ยวกับสถานะของแอปพลิเคชันนั้นค่อนข้างไม่สมเหตุสมผลสำหรับข้อมูลสำคัญที่มีผลต่อความคาดหวังของผู้ใช้เกี่ยวกับพฤติกรรมแอปพลิเคชัน บางทีสิ่งเดียวที่ต้องทำคือสร้างการดำเนินการที่กำหนดเองเพื่อเปิดแอปด้วยข้อมูลนั้น?
Allan Nienhuis

20

ตาม iOS / XCode: จะรู้ได้อย่างไรว่าแอพนั้นเปิดตัวด้วยการคลิกที่การแจ้งเตือนหรือบนไอคอนแอพสปริงบอร์ด คุณต้องตรวจสอบสถานะแอปพลิเคชันใน didReceiveLocalNotification ดังนี้:

if ([UIApplication sharedApplication].applicationState == UIApplicationStateInactive)
{
    // user has tapped notification
}
else
{
    // user opened app from app icon
}

แม้ว่ามันจะไม่สมเหตุสมผลสำหรับฉัน แต่ก็ดูเหมือนว่าจะได้ผล


1
มันจะไม่ทำงานในสถานการณ์นี้ ฉันลองมาก่อน เมื่อทำเครื่องหมายในช่องนั้นแล้ว (ดูรายละเอียดคำตอบที่ฉันยอมรับ) เมื่อได้รับการแจ้งเตือนระบบจะป้อนบรรทัดที่มีความคิดเห็น "// ผู้ใช้แตะการแจ้งเตือน" แม้ว่าผู้ใช้จะไม่ได้แตะการแจ้งเตือนก็ตาม (การแจ้งเตือนเพิ่งมาถึง )
Bao Lei

3
ฉันไม่เห็นด้วย. ฉันได้ตรวจสอบ "การแจ้งเตือนระยะไกล" ในความสามารถพื้นหลังของฉันและทำงานตามที่อธิบายไว้ในคำตอบของฉัน ฉันได้ตรวจสอบ "การดึงข้อมูลพื้นหลัง" แล้วเช่นกัน บางทีนั่นอาจทำให้เกิดการเปลี่ยนแปลง?
Werner Kratochwil

คุณช่วย +1 คำตอบของฉันได้ไหม ;-) ฉันยังต้องการการโหวตเพื่อเข้าร่วมใน stackoverflow มากขึ้น ขอบคุณมาก
Werner Kratochwil

Yupe นี่คือทางออก TNX
Afshin

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

16

หากมีใครต้องการใน swift 3.0

switch application.applicationState {
    case .active:
        //app is currently active, can update badges count here
        break
    case .inactive:
        //app is transitioning from background to foreground (user taps notification), do what you need when user taps here
        break
    case .background:
        //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here
        break
    default:
        break
    }

เพื่อความรวดเร็ว 4

switch UIApplication.shared.applicationState {
case .active:
    //app is currently active, can update badges count here
    break
case .inactive:
    //app is transitioning from background to foreground (user taps notification), do what you need when user taps here
    break
case .background:
    //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here
    break
default:
    break
}

ทริกเกอร์ใดที่เราควรเพิ่มโค้ดนี้ didReceiveRemoteNotification หรือ didFinishLaunchingWithOptions
Dashrath

2
บน didReceiveRemoteNotification
Hamid Shahsavari

@ Hamid sh ,,,, ฉันได้รับการแจ้งเตือนแบบพุชในทุกสถานะเช่นเมื่อแอปอยู่ใน forground พื้นหลังปิด (ยุติ) .. ! แต่ปัญหาของฉันคือวิธีการเพิ่มจำนวนป้ายเมื่อแอปอยู่ในสถานะพื้นหลังและสถานะปิด (ยุติ) ???? กรุณาบอกรายละเอียดว่าทำอย่างไร .... ? จำนวนป้ายแอปของฉันจะเพิ่มขึ้นก็ต่อเมื่อแอปอยู่ในสถานะ forground ..... ? ถ้าเป็นไปได้ช่วยบอกฉันสั้น ๆ ....... !
Kiran jadhav

9

ฉันพบปัญหานี้เช่นกัน - แต่บน iOS 11 ที่มีUserNotificationsFramework ใหม่

สำหรับฉันแล้วมันเป็นเช่นนี้:

  • เปิดตัวใหม่: application:didFinishLaunchingWithOptions:
  • ได้รับจากสถานะยุติ: application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
  • ได้รับในเบื้องหน้า: userNotificationCenter(_:willPresent:withCompletionHandler:)
  • ได้รับในเบื้องหลัง: userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:

นี่คือวิธีที่ต้องทำใน iOS 11 +
OhadM

มันซับซ้อนมาก 🤦‍♂️
Zorayr

8

หากคุณได้เลือก "โหมดพื้นหลัง"> "การแจ้งเตือนระยะไกล" == ใช่แตะที่เหตุการณ์การแจ้งเตือนจะมาถึง:

-(void)userNotificationCenter:(UNUserNotificationCenter *)center **didReceiveNotificationResponse**:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler.

มันช่วยฉัน เชิญสนุกได้ :)


ฉันเห็นว่า Apple เพิ่มสิ่งนี้ แต่ไม่สามารถหาวิธีรับ payload ที่กำหนดเองของการแจ้งเตือนด้วยวิธีนี้
sudo

ฟังก์ชันนี้ถูกเรียกใช้เมื่อแอปอยู่ในสถานะพื้นหลังและเปิดใช้งานและเมื่อแอปเริ่มต้นจากสถานะที่ถูกฆ่า
Nikhil Muskur

@NikhilMuskur เฉพาะเมื่อเปิดใช้งาน "การแจ้งเตือนระยะไกล" ใช่หรือไม่?
Zorayr

@Zorayr ใช่ถูกต้อง
Nikhil Muskur

4

ในกรณีของฉันโหมดพื้นหลังปิดไม่ได้สร้างความแตกต่างใด ๆ อย่างไรก็ตามเมื่อแอปถูกระงับและผู้ใช้แตะการแจ้งเตือนฉันสามารถจัดการกรณีนี้ได้ด้วยวิธีการโทรกลับนี้:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) {

}

นี่เป็นวิธีอย่างเป็นทางการที่ Apple ระบุ ตามเอกสารของ Apple จะเรียกเมื่อใดก็ตามที่ผู้ใช้โต้ตอบกับ UI การแจ้งเตือนแบบพุช หากแอปไม่อยู่ในพื้นหลังแอปจะเปิดแอปในโหมดพื้นหลังและเรียกวิธีนี้
Ryan

3

สำหรับ iOS 10 ขึ้นไปใส่สิ่งนี้ใน AppDelegate เพื่อรับทราบว่ามีการแตะการแจ้งเตือน (ใช้งานได้แม้แอปจะปิดหรือเปิด)

func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {
print("notification tapped here")
}

1
นี่คือคำตอบที่ถูกต้องสำหรับ iOS 10+ คำอธิบายแบบเต็มให้ในหัวข้ออื่นที่นี่: stackoverflow.com/a/41783666/1761357
dead_can_dance

2

มีสอง Funcs สำหรับหมายเลขอ้างอิงที่ได้รับ PushNotification ภายในPushNotificationManagerคลาส:

class PushNotificationManager: NSObject, MessagingDelegate, UNUserNotificationCenterDelegate{

}

เมื่อฉันทดสอบทริกเกอร์ครั้งแรกทันทีที่การแจ้งเตือนมาถึง

@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

    completionHandler(UNNotificationPresentationOptions.alert)

    //OnReceive Notification
    let userInfo = notification.request.content.userInfo
    for key in userInfo.keys {
         Constants.setPrint("\(key): \(userInfo[key])")
    }

    completionHandler([])

}

และอันที่สองเมื่อแตะที่การแจ้งเตือน:

@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

    //OnTap Notification
    let userInfo = response.notification.request.content.userInfo
    for key in userInfo.keys {
        Constants.setPrint("\(key): \(userInfo[key])")
    }

    completionHandler()
}

ฉันยังทดสอบด้วยสถานะเปิดและปิดของการแจ้งเตือนระยะไกล (ในโหมดพื้นหลัง)


1

SWIFT 5.1

UIApplication.State ไม่ได้ผลสำหรับฉันเพราะเมื่อฉันอ่านลายนิ้วมือ (มีการแสดงโมดอล) ในแอปของฉันการแจ้งเตือนจะปรากฏขึ้นที่แถบด้านบนและผู้ใช้ต้องคลิก

ฉันได้สร้าง

public static var isNotificationFromApp: Bool = false

ในAppDelegateและฉันตั้งค่าtrueในการเริ่มต้นviewControllerแล้วในการแจ้งเตือนของฉันstoryboard/ viewControllerฉันแค่ตรวจสอบว่า :)

หวังว่าจะเป็นประโยชน์


-7

คุณสามารถกำหนดค่าเพย์โหลดของการแจ้งเตือนแบบพุชของคุณเพื่อเรียกapplication:didReceiveRemoteNotification:fetchCompletionHandler:วิธีการของผู้แทนแอปเมื่อแอปทำงานอยู่เบื้องหลัง คุณสามารถตั้งค่าสถานะที่นี่เพื่อให้เมื่อผู้ใช้เปิดแอปพลิเคชันของคุณในครั้งต่อไปคุณสามารถดำเนินการได้

จากเอกสารของ apple คุณควรใช้วิธีนี้เพื่อดาวน์โหลดเนื้อหาใหม่ที่เกี่ยวข้องกับการแจ้งเตือนแบบพุช นอกจากนี้สำหรับการทำงานคุณต้องเปิดการใช้งานการแจ้งเตือนระยะไกลจากโหมดความเป็นมาและน้ำหนักบรรทุกแจ้งเตือนผลักดันของคุณต้องมีcontent-availableคีย์กับชุดความคุ้มค่าที่จะ 1. จากข้อมูลเพิ่มเติมโปรดดูที่การใช้แจ้งเตือนผลักดันที่จะเริ่มต้นส่วนของการดาวน์โหลดแอปเปิ้ลจากเอกสารที่นี่

อีกวิธีหนึ่งคือการนับป้ายในเพย์โหลดการแจ้งเตือนแบบพุช ครั้งต่อไปที่แอปพลิเคชันของคุณเปิดตัวคุณสามารถตรวจสอบจำนวนป้ายแอปพลิเคชันได้ หากขูดมากกว่าศูนย์ให้ดำเนินการของคุณและนับป้ายสถานะเป็นศูนย์ / ล้างจากเซิร์ฟเวอร์ด้วย

หวังว่านี่จะช่วยคุณได้


@bhusan คุณอ่านรายละเอียดคำถามของฉันหรือยัง? ฉันเห็นว่า didReceiveRemoteNotification ถูกเรียกเมื่อมีการแจ้งเตือนมาถึง (ก่อนที่ผู้ใช้จะแตะ) ฉันต้องการทราบว่าผู้ใช้แตะมันหรือไม่
Bao Lei

คุณไม่ได้ตอบคำถามของ OP เขาไม่เพียงต้องการรู้ว่ามีการแจ้งเตือน เขาต้องการทราบว่าผู้ใช้เปิดแอปโดยแตะการแจ้งเตือนระยะไกลนั้นหรือไม่
Joe C
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.