ดังนั้นการสนับสนุนโหมดมืดจึงถูกเพิ่มเข้าไปในเวอร์ชั่น 2.20.31 (วางจำหน่ายในเดือนมีนาคม 2020) ของไคลเอ็นต์ WhatsApp นี่เป็นคุณสมบัติ iOS 13 เท่านั้นและจากรูปลักษณ์ที่ดูเหมือนว่าเป็นการติดตั้งแบบเนทีฟอย่างสมบูรณ์ ฉันคิดว่ามันปลอดภัยที่จะสมมติว่าตอนนี้แอพกำลังรวบรวมกับ iOS SDK 13.0 ขึ้นไป
สิ่งนี้เป็นของ iOS 13 ตอนนี้ Apple ต้องการหน้าจอการโทรมาตรฐานเพื่อแสดงทุกครั้งที่ได้รับการแจ้งเตือน VoIP ไม่เช่นนั้นแอปจะไม่ได้รับการแจ้งเตือน VoIP อีกต่อไป ใน iOS เวอร์ชันก่อนหน้าบางแอป (รวมถึง WhatsApp) ดูเหมือนจะใช้การโทร VoIP "ปลอม" ที่เข้ามาเพื่อปลุกแอปในพื้นหลังเมื่อผู้ใช้พยายามใช้เว็บไคลเอนต์เพื่อให้หลังสามารถเชื่อมต่อและแลกเปลี่ยนข้อมูลโดยตรง ด้วยโทรศัพท์
อย่างไรก็ตามในเวอร์ชั่นล่าสุดเว็บไคลเอ็นต์ยังคงทำงานได้เหมือนเดิมแม้จะมีข้อ จำกัด ที่ Apple แนะนำ การใช้ดีบักเกอร์เป็นไปได้ที่จะสังเกตเห็นแอป iOS ที่เปิดใช้งานเมื่อใดก็ตามที่ผู้ใช้เปิดเว็บไคลเอ็นต์บนพีซี แต่ไม่มีหน้าจอการโทรปรากฏขึ้น สามารถทำได้หลายครั้งและบ่อยเท่าที่เราต้องการ
บันทึกจาก WhatsApp ดูเหมือนจะยืนยันสิ่งที่เขียนข้างต้น :
default 17:09:44.515731+0000 callservicesd Call source <CXXPCCallSource 0x111ecb0a0 identifier=UKFA9XBX6K.net.whatsapp.WhatsApp isConnected=1 processIdentifier=417 isPermittedToUsePublicAPI=1 isPermittedToUsePrivateAPI=0> registered with configuration <CXProviderConfiguration 0x111e9bb40 localizedName=WhatsApp ringtoneSoundURL=(null) iconTemplateImageData=0x0 maximumCallGroups=1 maximumCallsPerCallGroup=1 supportsAudioOnly=1 supportsVideo=1 supportsEmergency=0 supportsVoicemail=0 supportsCurrentPlatform=1 includesCallsInRecents=1 audioSessionID=1151157 supportedHandleTypes=2>
หากเราพยายามทำสิ่งนี้กับแอพของเราผลลัพธ์จะแตกต่างกันมาก :
error 18:56:19.949023+0000 callservicesd Killing VoIP app com.xxxxx.xxxxx.xxxxx because it failed to post an incoming call in time.
ความคิดใด ๆ ที่เกิดขึ้นที่นี่ WhatsApp ใช้วิธีแก้ปัญหาที่ไม่มีเอกสารหรือใช้ประโยชน์จาก API ส่วนตัวบางประเภทหรือไม่?
ขอบคุณล่วงหน้าสำหรับคำตอบใด ๆ