क्या iPhone ऐप्स को उपयोगकर्ता के संपर्क के बिना कॉल करने की अनुमति है?


9

मैं अभी-अभी एक मिस्ड कॉल घोटाले के बारे में पढ़ रहा था, जहाँ उपयोगकर्ता को नंबर वापस न लेने पर भी शुल्क लगता है। मेरे साथ यह हुआ कि एक दुर्भावनापूर्ण iPhone ऐप उपयोगकर्ताओं को पैसे से बाहर करने के लिए प्रीमियम नंबर पर कॉल कर सकता है - वास्तव में, ऐसा प्रतीत होता है कि यह अतीत में हुआ है।

Apple के अपने दस्तावेज के अनुसार :

जब कोई उपयोगकर्ता किसी वेबपेज में टेलिफ़ोन लिंक टैप करता है, तो iOS एक अलर्ट प्रदर्शित करता है, जिसमें पूछा जाता है कि क्या उपयोगकर्ता वास्तव में फ़ोन नंबर डायल करना चाहता है और यदि उपयोगकर्ता स्वीकार करता है तो वह डायलिंग आरंभ करता है। जब कोई उपयोगकर्ता किसी मूल ऐप में टेली स्कीम के साथ एक URL खोलता है, तो iOS एक अलर्ट प्रदर्शित नहीं करता है और उपयोगकर्ता को संकेत दिए बिना डायल करने की शुरुआत करता है।

यह मुझे प्रतीत होता है कि एक जाहिरा तौर पर सौम्य iPhone ऐप, कह सकता है, तब तक प्रतीक्षा करें जब तक कि फोन चार्ज पर नहीं छोड़ा गया था (और इसलिए संभवतः उपयोगकर्ता द्वारा भाग नहीं लिया जा रहा है) और फिर डेवलपर को एक सुस्वादु बोनस देने के लिए एक प्रीमियम दर नंबर पर कॉल शुरू करें। । आईओएस I में इस व्यवहार को रोकने के लिए कोई भी अनुमति नहीं दी जा सकती है, क्योंकि यह किसी भी फोन डेटा तक पहुंचने के बजाय एक URL के साथ फोन ऐप खोल रहा है।

क्या कोई इस बात की पुष्टि कर सकता है कि मेरी समझ सही है और यदि हां, तो पृथ्वी पर Apple ने इस तरह के गैपिंग छेद को बंद क्यों नहीं किया है?

जवाबों:


8

मैंने अपने एक ऐप से फ़ोन कॉल शुरू करने का प्रयास करके प्रयोगात्मक रूप से iOS व्यवहार की जाँच की है।

यहाँ परिणाम हैं:

  • उपयोगकर्ता की पुष्टि के बिना फोन कॉल को प्रोग्राम करना शुरू करना संभव है। मैंने कोड की एक एकल पंक्ति लिखी है जिसे ऐप लोड होने के ठीक बाद निष्पादित किया गया है। मतलब कि अगर आपका ऐप अग्रभूमि में है, तो वह कहीं भी कॉल शुरू कर सकता है, वह भी बिना यूजर को टैप किए कहीं भी।
  • मैंने ऐप को एक मूक रिमोट पुश नोटिफिकेशन भेजा है ताकि ऐप न चलने पर उसे जगाया जा सके और फिर उसी कोड को निष्पादित किया जा सके। कोई कॉल शुरू नहीं किया गया था; अगर ऐप बैकग्राउंड में चल रहा है तो iOS ऐप को फोन कॉल शुरू करने की अनुमति नहीं देता है।

तो आपके सवालों का जवाब देते हुए, उपयोगकर्ता को सूचित किए बिना फोन कॉल शुरू करने का एकमात्र तरीका, किसी तरह उपयोगकर्ता को अग्रभूमि में चल रहे दुर्भावनापूर्ण एप्लिकेशन को छोड़ने के लिए आश्वस्त करना है, और फिर फोन कॉल शुरू करना है, क्योंकि iOS इस ऑपरेशन की अनुमति नहीं देगा। यदि एप्लिकेशन पृष्ठभूमि में है।

वर्तमान में iOS किसी विशेष ऐप से फ़ोन कॉल शुरू करने को रोकने के लिए कोई तंत्र प्रदान नहीं करता है, लेकिन यह केवल तभी हो सकता है जब ऐप अग्रभूमि में हो।


व्यापक जांच, शानदार जवाब के लिए धन्यवाद। मुझे यह सुनकर खुशी हुई कि यह केवल अग्रभूमि में है, हालांकि मैं मदद नहीं कर सकता, लेकिन लगता है कि यह एक ऐप का आविष्कार करना बहुत कठिन नहीं है, जो अप्राप्य और अग्रभूमि में रहने की संभावना है - कैमरा ऐप एक समय व्यतीत करने वाला एक है चीज़ के प्रकार का अच्छा उदाहरण। मैं अभी भी अन्य ऐप्स में URL खोलना पसंद करूंगा, एक दूसरे के लिए एक दूसरे ऐप को खोलने की अनुमति थी - हर बार नहीं, बल्कि बाहरी ऐप के अनुसार पहली बार पुष्टि की गई। मैं हालांकि UX निहितार्थ है कि स्वीकार करते हैं। मुझे लगता है कि सभी को बस सतर्क रहना होगा।
कार्ट्रो

5

मैंने इसे जांचने के लिए एक परीक्षण ऐप बनाया है। ऐप URL को tel://123456789तभी खोल सकता है जब वह अग्रभूमि में हो और सक्रिय हो। जब मैं पृष्ठभूमि कोड दर्ज करने के बाद भी इस कोड को कॉल करता हूं, तो इस URL को खोलने के लिए एपीआई ने कुछ नहीं किया। तो आपके सवाल का जवाब देने के लिए - ऐप्स आपकी जानकारी के बिना कॉल नहीं कर पाएंगे।

इस पेस्ट को अपने में टेस्ट करने के लिए AppDelegate:

- (void)applicationDidEnterBackground:(UIApplication *)application {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}

महान जवाब, कोड के लिए धन्यवाद। अगर मैं दोनों उत्तर स्वीकार कर लेता।
कार्ट्रो

2

जब iOS> = 10.3 पर कॉल शुरू करने की कोशिश की जाती है, तो उपयोगकर्ता को हमेशा एक पॉपअप प्रदर्शित किया जाएगा। डॉक्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.