Google का कस्टम आईओएस ऐप, Gboard, एक दिलचस्प विशेषता है जिसे आईओएस एसडीके (आईओएस 10 के रूप में) में सार्वजनिक एपीआई का उपयोग करके पूरा नहीं किया जा सकता है। मैं जानना चाहता हूं कि Google ने गॉबोर्ड में ऐप स्विचिंग स्टैक में प्रोग्रामिंग के एक प्रोग्राम को पॉप-अप करने का कार्य कैसे पूरा किया है।Google का कस्टम आईओएस कीबोर्ड, गबोर्ड, प्रोग्रामेटिक रूप से सामने वाले ऐप को कैसे खारिज करता है?
कस्टम आईओएस कीबोर्ड में दो प्रमुख घटक हैं: कंटेनर ऐप और कीबोर्ड ऐप एक्सटेंशन। कीबोर्ड ऐप एक्सटेंशन एक अलग ओएस प्रक्रिया में चलता है जो तब भी शुरू होता है जब कोई उपयोगकर्ता अपने फोन पर किसी ऐप में होता है जिसके लिए टेक्स्ट इनपुट की आवश्यकता होती है।
ये अनुमानित चरण हैं, जो पीछा किया जा सकता है, Gboard का उपयोग कर, प्रोग्राम के रूप में पिछले ऐप्लिकेशन की ओर लौटने का प्रभाव देखने के लिए कर रहे हैं:
- एक उपयोगकर्ता अपने iPhone पर एप्पल Messages एप्लिकेशन शुरू होता है और एक पाठ क्षेत्र पर टैप पाठ दर्ज करना शुरू करने के लिए।
- गबोर्ड कीबोर्ड एक्सटेंशन लॉन्च किया गया है और उपयोगकर्ता गबोर्ड कस्टम कीबोर्ड देख रहे हैं (जबकि वे अभी भी ऐप्पल संदेश ऐप में हैं)।
- उपयोगकर्ता वॉयस-टू-टेक्स्ट इनपुट करने के लिए गॉबोर्ड कीबोर्ड एक्सटेंशन के अंदर माइक्रोफ़ोन कुंजी को टैप करता है।
- गबोर्ड कंटेनर ऐप लॉन्च करने के लिए custom url scheme का उपयोग करता है। गॉबोर्ड कीबोर्ड और ऐप्पल संदेश ऐप को ऐप स्टैक में एक परत को धक्का दिया जाता है और गॉबर कंटेनर ऐप अब ऐप स्टैक में सबसे पहला ऐप है। गबोर्ड कंटेनर ऐप उपयोगकर्ता के भाषण को सुनने के लिए माइक्रोफोन का उपयोग करता है और इसे स्क्रीन पर रखे पाठ में अनुवाद करता है।
- उपयोगकर्ता "पूर्ण" बटन टैप करता है जब वे स्क्रीन पर दिखाई देने वाले टेक्स्ट इनपुट से संतुष्ट होते हैं।
- यह वह जगह है जहां जादू होता है ... क्योंकि टेक्स्ट इनपुट स्क्रीन को खारिज कर दिया जाता है, तो गबोर्ड कंटेनर ऐप भी स्वचालित रूप से खारिज कर दिया जाता है। गबोर्ड कंटेनर ऐप चला जाता है और ऐप्पल मैसेज ऐप द्वारा प्रतिस्थापित किया जाता है (कभी-कभी गबोर्ड कीबोर्ड एक्सटेंशन प्रक्रिया अभी भी जिंदा है, कभी-कभी इसे फिर से लॉन्च किया जाता है, और कभी-कभी इसे टेक्स्ट फ़ील्ड के अंदर टैप करके मैन्युअल रूप से पुनः लॉन्च करने की आवश्यकता होती है।)। Google इसे कैसे पूरा करता है?
- अंत में, उपयोगकर्ता उस टेक्स्ट को देखता है जिसे टेक्स्ट इनपुट फ़ील्ड के अंदर स्वचालित रूप से डाला गया था। संभावित रूप से Google इसे sharing data द्वारा गबोर्ड कंटेनर ऐप और कीबोर्ड एक्सटेंशन के बीच पूरा करता है।
मुझे लगता है कि गूगल ऑब्जेक्टिव-सी क्रम आत्मनिरीक्षण का उपयोग कर स्थिति पट्टी के दृश्य पदानुक्रम खोज और किसी भी तरह नल घटनाओं synthesizing या एक संपर्क में लक्ष्य/कार्रवाई को फोन करके निजी एपीआई उपयोग कर रहा है ग्रहण करेंगे। मैंने इसे बहुत कम खोज लिया है और स्टेटस बार के अंदर दिलचस्प UIView उप-वर्गों को खोजने में सक्षम है, जैसे UIStatusBarBreadcrumbItemView जिसमें UISystemNavigationAction एस की एक सरणी शामिल है। मैं उम्मीद में इन कक्षाओं का पता लगाने के लिए जारी रख रहा हूं कि मैं उपयोगकर्ता बातचीत को दोहराने का कोई तरीका ढूंढ सकता हूं।
मैं समझता हूं कि निजी एपीआई का उपयोग करना ऐप स्टोर से आपके ऐप सबमिशन को अस्वीकार करने का एक अच्छा तरीका है - यह कोई चिंता नहीं है कि मैं जवाब में संबोधित करना चाहता हूं। मैं मुख्य रूप से विशिष्ट उत्तरों के लिए देख रहा हूं कि Google कैसे गॉबर में ऐप स्विचिंग स्टैक में प्रोग्रामिंग के एक प्रोग्राम को पॉप-अप करने का कार्य पूरा करता है।
क्या यह किसी भी मनमाने ढंग से आवेदन के साथ होता है? सिस्टम संदेश ऐप के मामले में, यह काफी आसान है - इसे लॉन्च करने की एक योजना है: https://developer.apple.com/library/content/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html। यदि यह अन्य ऐप्स (विशेष रूप से कम लोकप्रिय वाले) के साथ भी काम करता है तो यह वास्तव में उत्सुक होगा। – Losiowaty
@Losiowaty यह किसी भी मनमाने ढंग से आवेदन के साथ होता प्रतीत होता है। – Prairiedogg
चरण 4 के बारे में, मैं कंटेनर/होस्ट ऐप नहीं खोल सकता, आप यह कैसे करते हैं? धन्यवाद – Changwei