รีเซ็ตการตั้งค่าการแจ้งเตือนแบบพุชสำหรับแอป


173

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

อย่างไรก็ตามกล่องโต้ตอบ (ริเริ่มโดยregisterForRemoteNotificationTypes) จะปรากฏเพียงหนึ่งครั้งต่อแอป ฉันจะรีเซ็ตหน่วยความจำของ iPhone OS ของแอพของฉันได้อย่างไร การลบแอพและติดตั้งใหม่ไม่ได้ช่วย

คำตอบ:


300

หมายเหตุทางเทคนิค TN2265: การแก้ไขปัญหาการแจ้งเตือนแบบพุช

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

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

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

อัปเดต:บันทึกเทคโนโลยีได้รับการอัปเดตด้วยขั้นตอนใหม่ที่ทำงานอย่างถูกต้องตั้งแต่ iOS 7

  1. ลบแอพของคุณออกจากอุปกรณ์
  2. ปิดอุปกรณ์โดยสมบูรณ์แล้วเปิดใหม่
  3. ไปที่การตั้งค่า> ทั่วไป> วันที่และเวลาและตั้งวันที่ล่วงหน้าหนึ่งวันขึ้นไป
  4. ปิดอุปกรณ์อีกครั้งอย่างสมบูรณ์แล้วเปิดใหม่

อัปเดตตั้งแต่ iOS 9

เพียงแค่ลบและติดตั้งแอพใหม่จะรีเซ็ตสถานะการแจ้งเตือนเป็นnotDetermined(หมายถึงข้อความแจ้งจะปรากฏขึ้น)

ขอบคุณคำตอบของ Gomfucius ด้านล่าง: https://stackoverflow.com/a/33247900/704803


16
มีใครลองใช้ w / iOS 5.1 นี้บ้างไหม? ฉันได้ทำตามขั้นตอนเหล่านี้แล้วและฉันยังไม่สามารถรีเซ็ตอุปกรณ์ ... ฉันลองตั้งค่านาฬิกาบน Mac ของฉันไปข้างหน้าก่อนที่จะติดตั้งผ่าน Xcode
nrj

1
เหมือนกัน ... ฉันไม่ได้รับพรอมต์
Rob

2
Apple ได้เพิ่มข้อกำหนดใหม่ให้กับแนวทางการส่ง AppStore ซึ่งต้องอาศัยแอปพลิเคชันเพื่อแสดงพรอมต์ สิ่งนี้อาจแนะนำว่าลบข้อความแจ้งอัตโนมัติใน iOS 5.1 อย่างไรก็ตามไม่มี API ที่จะสืบค้นการตั้งค่าศูนย์แจ้งเตือนดังนั้นไม่แน่ใจว่าจุดประสงค์ของพรอมต์นั้นจะเป็นอย่างไร ดูการตอบสนองของฉันต่อปัญหาที่คล้ายกัน: stackoverflow.com/questions/10191006/…
Greg

10
นี่มันไร้สาระ Apple ไม่ทราบหรือไม่ว่าผู้พัฒนาหรือผู้ใช้อาจต้องการรีเซ็ตสิ่งเหล่านี้โดยไม่ใช้วิธีแก้ปัญหาที่ไม่ดีจริง ๆ
sudo

2
เมื่อฉันลองทำสิ่งนี้ในโปรแกรมจำลองฉันได้รับรหัสข้อผิดพลาด = 3010 "เครื่องมือแจ้งเตือนระยะไกลไม่รองรับ"
Thomas Zimmer

48

โซลูชันสำหรับการทดสอบอีกอย่างหนึ่งคือเพียงเปลี่ยนรหัสบันเดิลของคุณ อย่าลืมเปลี่ยนมันทันทีที่คุณทำเสร็จ!


12
คุณไม่จำเป็นต้องสร้างใบรับรองสำหรับรหัสแอปใหม่เพื่อทดสอบหรือไม่
โทนี่

1
สิ่งนี้จะใช้งานได้หากคุณใช้โปรไฟล์การจัดสรรตาม wildcard - มิฉะนั้นคุณจะต้องสร้างโปรไฟล์สำหรับบันเดิลใหม่
Zorayr

แม้ว่าคุณจะต้องสร้างโปรไฟล์ใหม่นั่นเป็นเพียงการคลิกปุ่ม "แก้ไข" และรอสักครู่ - เร็วกว่าการผ่านรอบการรีบูตทั้งหมด
Ilya

นี่คือทางออกที่เร็วที่สุด! มันใช้งานได้ดีสำหรับฉัน! เมื่อเปลี่ยน bundle_id ของคุณคุณจะไม่สามารถเซ็นชื่อแอปด้วย "โปรไฟล์การจัดสรร" เดียวกัน แต่ไม่ต้องกังวลใน xCode (เวอร์ชั่นของฉัน 7.1.1) คุณสามารถคลิกที่ "แก้ไขปัญหา" และดำเนินการได้ อย่าลืม "ความสามารถ" onglet ที่คุณสามารถมีหลายรายการที่จะ "แก้ไข" (โดยการคลิกที่ปุ่ม "แก้ไขมัน") แล้วมันจะทำงานได้ดีมาก!
เขื่อนฟ้า Fa

คำตอบนี้เป็นตัวเลือกที่ถูกต้อง แต่ยังคงเป็นแฮ็ก - แก้ไขสำหรับสถานการณ์ที่โง่เขลาจาก Apple ฉันไม่ได้แก้ไขบันเดิล ID หรือเปลี่ยนนาฬิกาอุปกรณ์ ตามความเหมาะสมนักพัฒนาสามารถเขียนรหัสสั้น ๆ ที่แสดง UIAlertView ที่ถามว่า "อนุญาตการแจ้งเตือนแบบพุชได้หรือไม่" .. Yes = เรียกเมธอด register; No = call didFailToRegisterForRemoteNotificationsWithError (ฯลฯ ) .. นั่นเป็นวิธีการแก้ปัญหาของฉันเอง take-away หลังจากอ่านคำถาม & คำตอบนี้ ในทางเทคนิคแล้วมันเป็นวิธีที่ดีที่สุดที่จะให้ผู้ใช้รับรู้ข้อมูลความเป็นส่วนตัว ...
Tom Pace

36

ใน iOS 9.0.2 ฉันได้รับ "การแจ้งเตือนการแจ้งเตือนการลงทะเบียน" ทุกครั้งที่ฉันลบแอพและติดตั้งใหม่ สิ่งนี้เป็นจริงสำหรับทั้งการดาวน์โหลด AppStore และโหมด adhoc

UPDATE:ได้รับการยืนยันว่าใช้งานได้กับ iOS 9.x


1
ฉันพบกับพฤติกรรมเดียวกันสำหรับ iOS 9.x ฉันอยากจะแนะนำให้คุณแก้ไขคำตอบเดิมโดยเพิ่มUPDATE:
Yevhen Dubinin

3
ที่สุด! ไม่มีแอปลบอีกต่อไปปิดอุปกรณ์ตั้งเวลาไปข้างหน้าและทำอะไรโง่ ๆ แบบนี้
mkeremkeskin

19

ดังที่ระบุไว้แล้ววิธีการรีเซ็ตสถานะการแจ้งเตือนสำหรับแอพในอุปกรณ์นั้นเปลี่ยนไปสำหรับ iOS5 ใหม่กว่า

สิ่งนี้ใช้ได้กับฉันใน iOS6:

  • ลบแอพออกจากอุปกรณ์
  • ตั้งค่าวันที่และเวลาอุปกรณ์สองวันขึ้นไป
  • รีสตาร์ทอุปกรณ์
  • ตั้งค่าวันที่และเวลาอุปกรณ์สองวันขึ้นไป
  • รีสตาร์ทอุปกรณ์
  • ติดตั้งและเรียกใช้แอปอีกครั้ง

อย่างไรก็ตามนี่จะทำให้พรอมต์เริ่มต้นปรากฏขึ้นอีกครั้งเท่านั้น - จะไม่ลบสิ่งที่เกี่ยวข้องกับสถานะการพุชใด ๆ


ทำงานให้ฉันด้วยเช่นกันใน ios7 คุณต้องเปลี่ยนวันที่สองครั้งครั้งเดียวไม่ได้ผล
Nath

1
ขอบคุณ! มันใช้งานได้กับ iOS 8 (ฉันต้องรีเซ็ตสิทธิ์การพุชสำหรับ Twitter.app เนื่องจากไม่มีการตั้งค่า "ไอคอนไอคอนแอป" ในบานหน้าต่างการตั้งค่าในการตั้งค่า)
gklka

9

ผู้ร่วมรายการ: /private/var/mobile/Library/RemoteNotification/Clients.plist

... มีไคลเอนต์ที่ลงทะเบียนสำหรับการแจ้งเตือนแบบพุช การลบรายการในแอปของคุณจะทำให้ข้อความแจ้งปรากฏขึ้นอีกครั้ง


11
คำตอบที่ไร้ประโยชน์ถ้าคุณพัฒนา App Store
samvermette

20
หากเป็นไปได้สำหรับผู้ฝ่าฝืนจะเป็นไปได้หรือไม่ที่นักพัฒนาจะต้องทำผ่านโทรศัพท์ที่ไม่มีการเจลเบรคใช่ไหม? และไม่ใช่คำตอบที่ไร้ประโยชน์เพราะนี่ไม่ใช่สิ่งที่คุณใส่ในแอพเพื่อส่งไปยังร้านค้า สำหรับนักพัฒนาที่จะทำการทดสอบในขณะที่
ออสการ์

1
ไฟล์นี้ไม่ได้เป็นส่วนหนึ่งของ iOS 5.x
gmogames

ดูคำตอบที่อัปเดตซึ่งเป็นส่วนหนึ่งของคำถามนี้: stackoverflow.com/questions/13021066/…
AriX

7

การทำโปรแกรมดูเหมือนว่าจะทำงานให้ฉันทุกครั้ง ฉันมีบิลด์ที่ไม่มีบรรทัดต่อไปนี้:

 [[UIApplication sharedApplication] unregisterForRemoteNotifications];

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

นอกจากนี้ UI ที่ขอให้ผู้ใช้ลงทะเบียน PN อาจไม่ปรากฏขึ้น ไม่แน่ใจว่าถูกปิดการใช้งานใน iOS เวอร์ชันล่าสุดหรือไม่


ทำงานให้ฉัน iOS 10 / iPhone 6S โปรดทราบว่าฉันไม่ได้ลงทะเบียนแล้วลบแอพก่อนที่จะติดตั้งใหม่
Gabriel Jensen

5

ดังที่ ianolito กล่าวว่าการตั้งค่าวันที่ควรจะทำงาน:

คุณสามารถทำได้โดยไม่ต้องรอวันโดยตั้งค่านาฬิการะบบไปข้างหน้าหนึ่งวันหรือมากกว่าปิดอุปกรณ์โดยสมบูรณ์แล้วเปิดอุปกรณ์อีกครั้ง

ฉันสังเกตเห็นบนอุปกรณ์ของฉัน (iPhone 4, iOS 6.1.2) การตั้งค่านาฬิการะบบต่อวันหรือแม้กระทั่งสองสามวันก็ไม่ทำงานสำหรับฉัน ดังนั้นฉันจะตั้งวันที่ล่วงหน้าหนึ่งเดือนจากนั้นก็ใช้งานได้

หวังว่านี่จะช่วยให้ทุกคนสามารถปวดหัวได้!


1
กรุณาอย่าตอบด้วย "ระบบปฏิบัติการล่าสุด" - มันเปลี่ยนแปลงตลอดเวลา พฤติกรรมนี้ยังคงใช้งานไม่ได้ใน 6.1.2 แต่อาจใช้งานได้ใน 6.0.1 หรือไม่
patr1ck

แก้ไขคำตอบยังมีสิ่งนี้ใน 6.1.2 ใช่และก่อนหน้านี้ใน 6.0.1 เช่นกัน มันใช้งานได้สำหรับฉันถ้าฉันตั้งวันที่อย่างน้อย +1 เดือน
Vincent Cohen

1
ฉันเคยได้ยินสิ่งที่ 24 ชั่วโมงดังนั้นลองมันและมันไม่ทำงาน 2 วันล่วงหน้า ตั้งเป็นเหมือน 3 เดือนนับจากนี้และป๊อปอัพการอนุญาตปรากฏขึ้นอีกครั้ง! ขอบคุณ!
marcshilling

โพสต์เก่า แต่ดีใจที่เห็นมันยังคงช่วย! ขอให้โชคดี :)
Vincent Cohen

5

ฉันเห็นด้วยกับ micmdk .. ฉันมีการตั้งค่าสภาพแวดล้อมการพัฒนาด้วยการแจ้งเตือนแบบกดและต้องการวิธีการรีเซ็ตโทรศัพท์ของฉันให้ดูเหมือนการติดตั้งครั้งแรก…และมีเพียงขั้นตอนที่แม่นยำเหล่านี้ที่ใช้ได้สำหรับฉัน ... ต้องรีบูตอุปกรณ์สองครั้ง:

จาก APPLE TECH DOC:

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

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

  1. ลบแอพของคุณออกจากอุปกรณ์

  2. ปิดอุปกรณ์โดยสมบูรณ์แล้วเปิดใหม่

  3. ไปที่การตั้งค่า> ทั่วไป> วันที่และเวลาและตั้งวันที่ล่วงหน้าหนึ่งวันขึ้นไป

  4. ปิดอุปกรณ์อีกครั้งอย่างสมบูรณ์แล้วเปิดใหม่


สิ่งนี้ถูกกล่าวถึงว่าไม่ทำงานในคำตอบอื่นอีกต่อไป
Beau Nouvelle

มันใช้งานได้ดี สิ่งที่หยุดทำงานใน iOS 5.1 คือคำตอบอื่น ๆ ของเวอร์ชันเก่าซึ่งทำให้การรีบูตระหว่างการลบแอพและการตั้งค่านาฬิกาล่วงหน้า
dgatwood

3

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

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


ฉันหวังว่าจะได้คำตอบที่ดีกว่านี้ แต่ฉันคิดว่ามันคงไม่ใช่คำตอบเดียว ขอขอบคุณ!
ฮันโน

3

บันทึกเทคโนโลยีเดียวกันกับที่อ้างถึงในคำตอบที่ยอมรับ ( TN2265 - การแก้ไขปัญหาการแจ้งเตือนแบบพุช)ได้รับการอัปเดตด้วยโซลูชันสำหรับ iOS 5 ขึ้นไป

ในระยะสั้น: สร้างการสำรองข้อมูลและเรียกคืนจากมันทุกครั้ง

บน iOS 5 และใหม่กว่าให้รีเซ็ตการแจ้งเตือนการแจ้งเตือนเมื่อมีการคืนค่าอุปกรณ์จากการสำรองข้อมูล (r. 11450187) นี่คือขั้นตอนในการทำสิ่งนี้อย่างมีประสิทธิภาพ:

  1. ใช้ Xcode Organizer เพื่อติดตั้งแอพของคุณบนอุปกรณ์ กุญแจสำคัญคือการติดตั้งแอพเป็นครั้งแรกโดยไม่ต้องเรียกใช้
  2. ใช้ iTunes เพื่อสำรองข้อมูลอุปกรณ์
  3. เปิดแอพ การแจ้งเตือนการแจ้งเตือนการผลักดันการแจ้งเตือนจะถูกนำเสนอ
  4. เมื่อคุณต้องการรีเซ็ตการแจ้งเตือนสิทธิ์ในการแจ้งเตือนแบบพุชให้เรียกคืนอุปกรณ์จากข้อมูลสำรองที่คุณสร้างในขั้นตอนแรก

อาจแนะนำว่าในครั้งเดียว แต่มันไม่ได้ทำอีกต่อไป คำแนะนำปัจจุบันคือการลบแอปรีบูตตั้งนาฬิกาไปข้างหน้ารีบูตเลือกตั้งนาฬิกากลับเป็นวันที่และเวลาที่ถูกต้องและเรียกใช้แอป
dgatwood

2

Apple Tech Note ยังอธิบายว่าคุณสามารถกู้คืนอุปกรณ์เพื่อรีเซ็ตกล่องโต้ตอบ Push Notification

ไม่ได้บอกว่าคุณสามารถใช้ตัวเลือก "ทั่วไป -> รีเซ็ต -> ลบเนื้อหาและการตั้งค่าทั้งหมด" บนอุปกรณ์ของตัวเอง (iOS 5.x)


1
สำหรับสิ่งที่คุ้มค่า: ฉันแค่ลอง 'ลบการตั้งค่าทั้งหมด' และนั่นก็ไม่ได้ผล ลองใช้ all-content-and-all-settings ...
Groxx

8
และ "เนื้อหาและการตั้งค่าทั้งหมด" ใช้งานได้จริงขอบคุณ! แต่ตัวเลือกนิวเคลียร์ศักดิ์สิทธิ์แบทแมน! นั่นมันบ้ามาก
Groxx

94
ฉันเคยได้ยินว่าการซื้ออุปกรณ์ใหม่นั้นได้ทำการล้างคำเตือนการแจ้งเตือนด้วยเช่นกัน!
samvermette

ฉันลองซื้ออุปกรณ์ใหม่ แต่ก็ไม่ได้ผลเหมือนกัน หลังจากนำอุปกรณ์ใหม่ไปที่บาร์อัจฉริยะพวกเขาใช้เวทย์มนตร์และแก้ไขเพื่อเงินเพิ่มเติม ... ฉันประหลาดใจหลังจากหลายปีที่ผ่านมา Apple ยังไม่ได้ให้วิธีที่ง่ายและเป็นประโยชน์ในการรีเซ็ตสิทธิ์การพุช มันไร้สาระ
Chris

1

นอกจากคำตอบของ ianolito แล้ว

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

  • ปิดและลบแอพ
  • ไปที่การตั้งค่า iCloud ของคุณและลบแอพออกจาก iCloud ทำสิ่งนี้กับอุปกรณ์อื่นทั้งหมดที่คุณเปิดใช้งานการสำรองข้อมูล iCloud หลังจากปิดใช้งานและลบให้ทำการสำรองข้อมูลใหม่ แอพไม่ควรอยู่ในรายการสำรองเพิ่มเติม (นี่อาจเป็นเหตุผลว่าทำไมหมายเหตุทางเทคนิคจาก Apple ที่อธิบายโดย ianolito หยุดทำงานใน iOS 5 เนื่องจาก iCloud ถูกนำมาใช้ใน iOS 5 และหลายคนมีการสำรองข้อมูล iCloud สำหรับแอปที่เปิดใช้งาน)
  • ไปที่การตั้งค่าเวลาของคุณและตั้งเวลาล่วงหน้ามากกว่า 1 เดือน
  • ปิด iPhone (ไม่รีเซ็ต)
  • รอสักครู่เปิดสวิตช์ใหม่แล้วดาวน์โหลดแอพอีกครั้ง
  • เริ่มแอพและฉันได้นำเสนอกล่องโต้ตอบอีกครั้ง
  • เปิดใช้งานการสำรองข้อมูลแอพอีกครั้งเนื่องจากยังคงปิดใช้งานอยู่ แก้ไขเวลา

ขอบคุณพระเจ้าที่ฉันไม่ต้อง "ลบเนื้อหาและการตั้งค่าทั้งหมด" อาจจะช่วยใครซักคน


1

ฉันเพิ่งพบปัญหาที่คล้ายกันกับแอปพลิเคชันที่ตอบสนองพื้นเมือง iPhone OS เวอร์ชัน 13.1 ฉันถอนการติดตั้งแอปพลิเคชั่นและพยายามติดตั้งแอพและสังเกตว่าทั้งตำแหน่งและการแจ้งเตือนไม่ได้รับแจ้ง

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

ปัญหานี้แก้ไขได้หลังจากตั้งเวลาอุปกรณ์แล้วเท่านั้น


0

หลังจากผ่านไปหลายชั่วโมงของการค้นหาและไม่มีโชคกับคำแนะนำข้างต้นสิ่งนี้ใช้ได้ผลกับเสน่ห์ของ 3.x +

override func viewDidLoad() {
        super.viewDidLoad()


            requestAuthorization()

}

func requestAuthorization() {

        if #available(iOS 10.0, *) {

            UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
                print("Access granted: \(granted.description)")
            }

        } else {
            // Fallback on earlier versions
        }

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