Vì vậy, hỗ trợ chế độ tối đã được thêm vào phiên bản 2.20.31 (phát hành vào tháng 3 năm 2020) của ứng dụng khách WhatsApp. Đây là một tính năng chỉ dành cho iOS 13 và từ giao diện & cảm nhận, nó dường như là một triển khai hoàn toàn tự nhiên. Tôi nghĩ thật an toàn khi cho rằng ứng dụng hiện đang được biên dịch với iOS SDK 13.0 trở lên.
Vấn đề là, kể từ iOS 13, Apple hiện yêu cầu hiển thị màn hình cuộc gọi gốc bất cứ khi nào nhận được thông báo VoIP - nếu không, ứng dụng sẽ không nhận được bất kỳ thông báo VoIP nào nữa. Trong phiên bản iOS trước, một số ứng dụng (bao gồm WhatsApp) dường như sử dụng các cuộc gọi VoIP đến "giả mạo" để âm thầm đánh thức ứng dụng ở chế độ nền khi người dùng cố gắng sử dụng máy khách web để sau đó có thể kết nối và trao đổi dữ liệu trực tiếp với điện thoại.
Tuy nhiên, kể từ phiên bản mới nhất, máy khách web vẫn hoạt động như trước đây mặc dù có giới hạn do Apple giới thiệu. Sử dụng trình gỡ lỗi, có thể quan sát ứng dụng iOS thức dậy bất cứ khi nào người dùng mở ứng dụng web trên PC, nhưng không có màn hình cuộc gọi nào được hiển thị. Điều này có thể được thực hiện nhiều lần và thường xuyên như chúng ta muốn.
Nhật ký từ WhatsApp dường như xác nhận những gì được viết ở trên :
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>
Nếu chúng tôi cố gắng làm điều này với ứng dụng của mình, kết quả hoàn toàn khác :
error 18:56:19.949023+0000 callservicesd Killing VoIP app com.xxxxx.xxxxx.xxxxx because it failed to post an incoming call in time.
Có ai biết chuyện gì đang xảy ra ở đây không? WhatsApp có sử dụng bất kỳ loại giải pháp không có giấy tờ nào hoặc khai thác một số loại API riêng tư không?
Cảm ơn trước cho bất kỳ câu trả lời.