iOS लॉन्चिंग सेटिंग्स -> प्रतिबंध URL योजना


86

मैंने हाल ही में भयानक iOS5 कस्टम सेटिंग्स URL योजना की खोज की है , जिसे इस महान वेबसाइट पर विस्तार से बताया जा सकता है ।

मैंने इसे अपने एप्लिकेशन से सेटिंग ऐप के लिए उपयोगकर्ता को निर्देशित करते हुए काम करने के लिए पाया है:

[[UIApplication sharedApplication] openURL:
       [NSURL URLWithString:@"prefs:root=General"]];

लेकिन पैरामीटर के माध्यम से प्रतिबंध पथ पर सीधे रूट करने के लिए प्रतीत नहीं हो सकता है path:

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];

क्या किसी ने इस पर प्रलेखन पाया है या यह काम करने में सक्षम है?

किसी भी जानकारी की काफी सराहना की जाएगी। मैं इन-ऐप खरीदारी को सक्षम करने के लिए उपयोगकर्ता को लेने की कोशिश कर रहा हूं, और उपयोगकर्ता को मैन्युअल रूप से प्रतिबंध (बहुत स्पष्ट नहीं) पर क्लिक करना होगा।


2
किसी को भी टच आईडी और पासकोड के लिए यूआरएल पता है?
फेबियन कोलबेल

1
टच आईडी के लिए इसका उपयोग करें: Prefs: root = TOUCHID_PASSCODE ( stackoverflow.com/questions/35410746/… )
Fabian Köbel

जवाबों:


144

के रूप में @ निंग वैंग के इस IOS 10 में काम नहीं कर रहा है


चेतावनी: iOS 5.1 और इससे अधिक चलने वाले उपकरणों के लिए यह विधि काम नहीं करेगी - नीचे देखें Hlung की टिप्पणी।

यह संभव है कि path घटक का वास्तविक खंड की तुलना में अलग नाम हो, लेकिन यह भी संभव है कि आप वर्तमान में किसी URL से सीधे उस अनुभाग तक नहीं पहुंच सकते। मुझे संभावित URL की एक सूची मिली और प्रतिबंध उस पर नहीं है, शायद यह अभी तक पता नहीं चला है।

सेटिंग ऐप में वर्तमान में ज्ञात URL की सूची:

  • वरीयता: जड़ = जनरल और पथ = बारे में
  • वरीयता: जड़ = जनरल और पथ = अभिगम्यता
  • वरीयता: जड़ = AIRPLANE_MODE
  • वरीयता: जड़ = जनरल और पथ = autolock
  • वरीयता: जड़ = जनरल और पथ = उपयोग / CELLULAR_USAGE
  • वरीयता: जड़ = चमक
  • वरीयता: जड़ = जनरल और पथ = ब्लूटूथ
  • वरीयता: जड़ = जनरल और पथ = DATE_AND_TIME
  • वरीयता: जड़ = FaceTime
  • वरीयता: जड़ = जनरल
  • वरीयता: जड़ = जनरल और पथ = कीबोर्ड
  • वरीयता: जड़ = CASTLE
  • वरीयता: जड़ = किले तथा पथ = STORAGE_AND_BACKUP
  • वरीयता: जड़ = जनरल और पथ = अंतर्राष्ट्रीय
  • वरीयता: जड़ = LOCATION_SERVICES
  • वरीयता: जड़ = ACCOUNT_SETTINGS
  • वरीयता: जड़ = संगीत
  • वरीयता: जड़ = संगीत और पथ = EQ
  • वरीयता: जड़ = संगीत और पथ = VolumeLimit
  • वरीयता: जड़ = जनरल और पथ = नेटवर्क
  • वरीयता: जड़ = NIKE_PLUS_IPOD
  • वरीयता: जड़ = नोट
  • वरीयता: जड़ = NOTIFICATIONS_ID
  • वरीयता: जड़ = फ़ोन
  • वरीयता: जड़ = तस्वीरें
  • वरीयता: जड़ = जनरल और पथ = ManagedConfigurationList
  • वरीयता: जड़ = जनरल और पथ = रीसेट
  • वरीयता: जड़ = ध्वनि और पथ = रिंगटोन
  • वरीयता: जड़ = सफारी
  • वरीयता: जड़ = जनरल और पथ = सहायक
  • वरीयता: जड़ = ध्वनि
  • वरीयता: जड़ = जनरल और पथ = SOFTWARE_UPDATE_LINK
  • वरीयता: जड़ = स्टोर
  • वरीयता: जड़ = TWITTER
  • वरीयता: जड़ = जनरल और पथ = उपयोग
  • वरीयता: जड़ = वीडियो
  • वरीयता: जड़ = जनरल और पथ = नेटवर्क / वीपीएन
  • वरीयता: जड़ = वॉलपेपर
  • वरीयता: जड़ = वाईफ़ाई
  • वरीयता: जड़ = INTERNET_TETHERING

54
बस एक तरह की चेतावनी, idownloadblog.com/2011/11/29/iphone-5-1-disables-shortcuts ने कहा कि iOS सेटिंग में सभी url योजनाएं iOS5.1 में हटा दी जाएंगी (इसलिए urls जैसे prefs : root = General & path / Network) अब काम नहीं करेगा) इसलिए, कृपया जागरूक रहें।
Hlung

3
वे पूरी तरह से आपको हटा नहीं रहे हैं, आपको बस इन URL लिंक को UIAlertView के एक बटन में डालना है। तो बस UIAlertView में एक चेतावनी दें कि ऐप बैकग्राउंड में चला जाएगा और सेटिंग्स खुल जाएगी और फिर ओके, और
कैंसिल

4
यह अब काम नहीं कर रहा है, यह कुछ समय पहले मेरे एक ऐप पर काम कर रहा था लेकिन अब नहीं।
ज़ाम्बोनो

5
IOS8 के रूप में आप अंतर्निहित सेटिंग्स ऐप को url के साथ लॉन्च कर सकते हैं:[NSURL URLWithString:UIApplicationOpenSettingsURLString]
जेसन मूर

2
कृपया ios10 के लिए कोई समाधान / विकल्प।
ranjit.x.singh

48

IOS8 के रूप में आप इसके साथ अंतर्निहित सेटिंग्स ऐप खोल सकते हैं:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
   [[UIApplication sharedApplication] openURL:url];
}

वास्तविक URL स्ट्रिंग है @"app-settings:"। मैंने स्ट्रिंग ("ब्लूटूथ", "जनरल", आदि) के लिए अलग-अलग वर्गों को जोड़ने की कोशिश की, लेकिन लगता है कि केवल मुख्य स्क्रीन कामों से जुड़ा हुआ है। यदि आपको पता चले तो उत्तर पोस्ट करें।


10
ऐसा इसलिए है क्योंकि वह विशेष कॉल सेटिंग लॉन्च URL है। यदि वे मौजूद हैं तो यह ऐप की कस्टम सेटिंग्स को खोलता है। यदि नहीं, तो यह सेटिंग ऐप को मुख्य स्क्रीन पर खोलता है। developer.apple.com/library/ios/documentation/UIKit/Reference/…
JAL

1
शानदार जवाब अगर आपके ऐप में विशिष्ट सेटिंग्स हैं जो आप सक्षम / अक्षम करना चाहते हैं। सभी एक जगह पर और वांछित विन्यास प्राप्त करने के लिए सेटिंग्स के माध्यम से उपयोगकर्ता को नेविगेट करने की आवश्यकता नहीं है। धन्यवाद!
kyleturner

1
@ FabianKöbel क्या आप टचआईडी और पासकोड के लिए एक खोजने में सक्षम थे?
शयनक

1
@ स्पेसक्राफ्ट: आप इसका उपयोग कर सकते हैं: प्रीफ़्स: रूट = TOUCHID_PASSCODE ( stackoverflow.com/questions/35410746/… )
Fabian Köbel

यह सेटिंग ऐप लॉन्च करने के लिए वर्तमान में एकमात्र-Apple-अनुमोदित पद्धति प्रतीत होती है।
u2Fan

42

यदि आप अपने iOS ऐप में प्रीफ़्स URL योजना जोड़ते हैं, तो यह आपको उन सभी योजनाओं का उपयोग करने की अनुमति देगा जो हम iOS 5 में कर सकते हैं। मैंने इसे iOS 9 पर परीक्षण किया है, लेकिन मुझे लगता है कि यह पुराने संस्करणों पर भी काम करेगा।


यह ट्रिक केवल iOS 8 को शुरू करने के लिए काम करती है जहाँ इसकी कोई आवश्यकता नहीं है।
वलेरी वान

1
लेकिन iOS 8 में भी आपको WiFi सेटिंग्स खोलने की अनुमति नहीं है, उदाहरण के लिए, यदि आप इस URL को अपने एप्लिकेशन में नहीं जोड़ते हैं।
पेड्रो तोरेस

हाँ आप सही है। इस उपयोग के मामले के बारे में नहीं सोचा था।
वेलेरी वान

9
@conorgriffin आपके और किसी अन्य व्यक्ति के लिए सेटिंग के तहत सोच रहा है: लक्ष्य | (आवेदन) | जानकारी | URL प्रकार | +
केविन सिल्वेस्ट्रे

किसी ने कहा कि वह "प्रीफ़्स: रूट" यूआरएल का उपयोग करने के लिए खारिज कर दिया गया। stackoverflow.com/questions/8246070/…
Hlung

33

अपडेट करें:

prefs: iOS 10 के बाद से काम नहीं करेगा।


4
विकल्प क्या है?
OXXY

1
वह पागल है, क्योंकि यह आधिकारिक Apple Doc ( developer.apple.com/library/ios/qa/qa1924/_index.html ) जानबूझकर प्रीफ़ इश्यू को संबोधित करता है, और दिनांक 8/2/2016।
daspianist

1
वह डॉक्टर केवल कीबोर्ड सेटिंग्स के लिए इसका उपयोग करने के लिए कहता है (विशिष्ट उपयोग के अलावा कुछ भी उल्लंघन नहीं है।)
पीटर जॉनसन

दुर्भाग्य से यह आईओएस 10 में कीबोर्ड सेटिंग्स के लिए भी काम नहीं करता है
गहनता

4
हालांकि prefs:अब काम नहीं करता है, निम्न कार्य करता है (कम से कम सामान्य रूप से खोलने में):App-Prefs::root=Settings&path=General
daspianist

22

हां, यह देखा (और कई और अधिक), यहां तक ​​कि एक परीक्षण आवेदन में इसे लागू किया। वास्तव में Apple से निश्चित शब्द प्राप्त करने की आवश्यकता है, लेकिन समुदाय की सहमति राय Apple ने इसे 5.1 में अस्वीकृत कर दिया है क्योंकि यह सार्वजनिक रूप से "खोजा / प्रकाशित" किया गया था, इसलिए इसमें शामिल होने वाले आवेदन स्वीकार नहीं किए जाएंगे।

08/01/12 अपडेट: मेरे डेवलपर खाते के माध्यम से ऐप्पल से पूछा गया कि क्या वाईफाई सेटिंग्स डायलॉग को प्रोग्रामेटिक रूप से लॉन्च करने का कोई तरीका है। यहाँ प्रतिक्रिया है:

"हमारे इंजीनियरों ने आपके अनुरोध की समीक्षा की है और निष्कर्ष निकाला है कि वर्तमान में शिपिंग सिस्टम कॉन्फ़िगरेशन को देखते हुए वांछित कार्यक्षमता प्राप्त करने का कोई समर्थित तरीका नहीं है।"


9
मैं किसी को भी सलाह देता हूं, जिसे आधिकारिक बग रिपोर्ट दर्ज करने के लिए इस सुविधा की आवश्यकता है जितना अधिक यह सूचित किया जाता है, उतना ही यह दिखाई देगा और एक बेहतर मौका है कि भविष्य में एक समर्थित समाधान प्रस्तुत किया जा सकता है। Bugreport.apple.com
मैट कोनॉली

18

में आईओएस 9 इसे फिर से काम करता है!

सेटिंग> सामान्य> कीबोर्ड खोलने के लिए , मैं उपयोग करता हूं:

prefs:root=General&path=Keyboard

इसके अलावा, कीबोर्ड पर आगे जाना संभव है :

prefs:root=General&path=Keyboard/KEYBOARDS

मैंने पोपके ऐप में इसे देखा। मैंने सेटिंग> वाई-फाई सेटिंग्स के लिए यूआरएल की कोशिश की और यह भी काम करता है। चलिए आशा करते हैं कि यह बनी रहेगी।
जेमी मैकडैनियल

इन योजनाओं के लिए जोड़ा जा करने की आवश्यकता है LSApplicationQueriesSchemesमें info.plist?
चेतावनी

2
नहीं, वे नहीं। बस OpenURL: विधि के साथ इसका उपयोग करें।
मिखाइल

1
मैं एक वेब पेज से सेटिंग्स से लिंक करने के लिए इसका उपयोग करने की कोशिश कर रहा हूं और यह आईफोन पर सफारी में काम करने के लिए प्रतीत होता है, लेकिन आईपैड नहीं। दोनों 9.0.2 पर हैं। सच में, Apple?
रैंडी एच।

3
फिर भी वरीयता के लिए लक्ष्य URL योजना जोड़ने की जरूरत
शिम

7

मैं सेटिंग्स एप्लिकेशन और उपरोक्त पथ में ब्लूटूथ मेनू को खोलना चाहता था (उपसर्ग: रूट = सामान्य और पथ = ब्लूटूथ) मेरे लिए काम नहीं करता था। मेरे लिए काम करना खत्म हो गया

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)

सुनिश्चित करें कि आपके पास prefsपहले परिभाषित URL योजना है।


ऐसा इसलिए है क्योंकि हाल ही के iOS संस्करणों में ब्लूटूथ मेनू को चारों ओर ले जाया गया है। यह अब सामान्य के तहत नहीं, बल्कि एक शीर्ष-स्तरीय सेटिंग है ।
नैट

@ इमरान: आप भूल गए prefs-स्टफ।
माइकल डॉर्नर

5

IOS10 के लिए समाधान। ठीक काम करता है।

NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];

क्या यह वैध है? सफल ऐप सबमिशन का मतलब यह नहीं है कि यह वैध है। यह भविष्य में अंत में विफल हो सकता है ..
Stas

@Stas: नहीं, यह नहीं है, क्योंकि यह एक निजी एपीआई है।
तेजस के

4

IOS10 के रूप में आप उपयोग कर सकते हैं

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!) 

सामान्य सेटिंग्स खोलने के लिए।

इसके अलावा, आप विशिष्ट सेटिंग्स खोलने के लिए इसे ज्ञात urls जोड़ सकते हैं (आप उन्हें सबसे अपवित्र उत्तर में देख सकते हैं)। उदाहरण के लिए नीचे वाला टचआईडी और पासकोड खोलता है।

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)

1
"App-Prefs: root = TOUCHID_PASSCODE" iOS 11 पर काम नहीं करता है। कोई अन्य समाधान?
1

App-Prefsएक निजी एपीआई है जो समीक्षा के दौरान ऐप अस्वीकृति को बढ़ावा देगा।
तेजस के

2

यहाँ कुछ और है जो मैंने पाया:

  1. मेरे पास "प्रीफ़्स" URL स्कीम परिभाषित होने के बाद, "प्रीफ़्स: रूट = सफारी एंड पाथ = कंटेंटब्लॉकर्स" सिम्युलेटर (iOS 9.1 अंग्रेजी ) पर काम कर रहा है, लेकिन सिम्युलेटर (सरलीकृत चीनी) पर काम नहीं कर रहा है । यह सिर्फ सफारी के लिए कूदता है, लेकिन कंटेंट ब्लॉकर्स नहीं। यदि आपका ऐप अंतरराष्ट्रीय है, तो सावधान रहें।
    अद्यतन: पता नहीं क्यों, अब मैं ContentBlockers में अब और नहीं कूद सकता, एक ही कोड, एक ही संस्करण, अब काम नहीं करता। :(

  2. असली भक्तों पर (मेरा iPhone 6S और iPad मिनी 2 है), "सफारी" "SAFARI" , "सफारी" वास्तविक डिवाइस पर काम नहीं करना चाहिए, "SAFARI" अब सिम्युलेटर पर काम कर रहा है:

    #if arch(i386) || arch(x86_64)
        // Simulator
        let url = NSURL(string: "prefs:root=Safari")!
    #else
        // Device
        let url = NSURL(string: "prefs:root=SAFARI")!
    #endif
    
    if UIApplication.sharedApplication().canOpenURL(url) {
        UIApplication.sharedApplication().openURL(url)
    }
    
  3. अब तक, iPhone और iPad के बीच कोई अंतर नहीं मिला।


क्या आपको कभी यह काम फिर से मिला? ऐसा शर्म की बात है अगर नहीं!
रयान ब्रॉडी

@RyanBrodie "ऐसे शर्म करो" से आपका क्या मतलब है?
कायायुआन जू

यह बहुत दुर्भाग्यपूर्ण है, सफारी की सामग्री अवरोधक सेटिंग्स में सीधे लिंक करने के लिए बहुत अच्छा होगा
रयान ब्रॉडी

6
@RyanBrodie यहां तक ​​कि अगर यह काम कर सकता है, मेरा सुझाव है कि आप इसे अभी ऐप स्टोर ऐप्स के लिए उपयोग नहीं करते हैं, मुझे अभी सुबह iTunes से "अस्वीकृत" मिला है, "Prefs: root" के लिए एक निजी API है (ऐप्स हैं Prefs का उपयोग: ऐप स्टोर पर रूट ... भगवान जानते हैं क्यों)
काइयुआन जू

मुझे महसूस नहीं हुआ कि सर के लिए बहुत बहुत धन्यवाद!
रयान ब्रॉडी

2

आईओएस 10 पर परीक्षण अधिसूचना सेटिंग्स के लिए ठीक काम करता है (परीक्षण)

if(&UIApplicationOpenSettingsURLString != nil){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}


0

मैं यहां एक खबर अपडेट कर रहा हूं। 'प्रीफ़्स:' का उपयोग केवल ऐप्पल द्वारा अस्वीकार नहीं किया जाता है, मैंने इसका परीक्षण किया और ऐप स्टोर (अगस्त, 2016 में) को अनुमोदित किया। धन्यवाद।


मैं [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=DO_NOT_DISTURB"]];डिवाइस के खुले DND सेटिंग के लिए इसका उपयोग कर रहा हूं । Apple इसे खारिज करेगा?
श्रेयंक

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