2016-02-17 6 views
6

हम ऐप्पल यूनिवर्सल लिंक का उपयोग करके आईओएस पर ऐप इंडेक्सिंग को लागू करने की कोशिश कर रहे हैं (मैं https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2 देख रहा हूं)।आईओएस यूनिवर्सल लिंक और जीईटी पैरामीटर

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

मैं इंडेक्सिंग को https://www.mywebsite.com?parameter=something पर सीमित करना चाहता हूं, मैं कैसे कर सकता हूं?

{ 
    "applinks": { 
    "apps": [], 
    "details": [ 
     { 
     "appID": "MYID", 
     "paths":[ "*?parameter=*" ] 
     } 
    ] 
    } 
} 

आपको लगता है कि यह काम कर सकता कार्य करें:

मैं ऐसा ही कुछ के बारे में सोच रहा था? मैं अभी तक इसका परीक्षण नहीं कर सकता क्योंकि वेबसाइट रूट निर्देशिका पर फ़ाइलों को अपलोड करने के लिए प्राधिकरण प्राप्त करने में समय लगता है, इसलिए मैं आपको पूछ रहा हूं कि क्या आपको लगता है कि यह काम कर सकता है, मैं सिर्फ एक बार फ़ाइल अपलोड करना चाहता हूं कर सकते हैं।

आप

उत्तर

10

नहीं, वर्तमान में # (इनलाइन लिंक) और (क्वेरी-parmeter) Universal Links द्वारा समर्थित नहीं धन्यवाद। apple-app-site-association फ़ाइल में ऐप्पल ने Inline-Links & Query-Parmeter का समर्थन करने के लिए कोई प्रारूप प्रदान नहीं किया है।

https://www.mywebsite.com?parameter=something पर अनुक्रमण करने के लिए, मैं निम्नलिखित जेसन फ़ाइल का उपयोग कर रहा हूं।

{ 
    "applinks": { 
    "apps": [], 
    "details": [ 
     { 
     "appID": "TEAMID.BUNDLEID", 
     "paths":[ "*" ] 
     } 
    ] 
    } 
} 

आप केवल उदाहरण query_parmeter1 और query_parmeter2 तो आप की तरह [UIApplicationDelegate application: continueUserActivity: restorationHandler:] कुछ इस

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{ 
    if ([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb]) { 
     NSURL *url = userActivity.webpageURL; 
     if ([url.query containsString:@"query_parmeter1"]) { 
      //handle code for query_parmeter1 
     }else if ([url.query containsString:@"query_parmeter2"]){ 
      //handle code for query_parmeter2 
     } 
    } 
    return YES; 
} 

नोट UIApplicationDelegate विधि में इस संभाल करने की जरूरत के लिए कुछ पैरामीटर के लिए अनुक्रमण सीमित करना चाहते हैं: यह चाल जीता ऐप को खोलने से रोकें जब वेबसाइट पर एक लिंक क्लिक किया जाता है।

संदर्भ - Handle query parameters in universal links

+0

यूनिवर्सल लिंक में पैरामीटर को संभालने के लिए यह एक शानदार जवाब है। यूनिवर्सल लिंक, [ऐप इंडेक्सिंग] (https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/AppContent.html#//apple_ref/doc/uid/ के बीच अंतर का उल्लेख करना उचित हो सकता है टीपी 40016308-सीएच 7-एसडब्ल्यू 1) और [स्पॉटलाइट वेब सर्च] के लिए अनुक्रमण सामग्री (https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/WebContent.html#//apple_ref/doc/uid/ टीपी 40016308-सीएच 8-एसडब्ल्यू 1), क्योंकि लेखक स्पष्ट रूप से उत्तरार्द्ध करना चाहता है (जो मूल सार्वभौमिक लिंक कार्यान्वयन में स्वचालित नहीं है) –

+0

धन्यवाद विनीत चौधरी। यह एक अच्छी चाल है लेकिन जब ऐप को वेबसाइट पर क्लिक किया जाता है तो यह ऐप को खोलने से नहीं रोकेगा, है ना? डिफ़ॉल्ट पैरामीटर में वेबसाइट पुनर्निर्देशन को आप कैसे संभालेंगे, जब कोई भी पैरामीटर सेट नहीं होता है?धन्यवाद –

+0

@AlexBauer आपकी टिप्पणी और लिंक के लिए धन्यवाद। दरअसल मुझे एप्पलबॉट के बारे में ज्यादा परवाह नहीं है, लेकिन मैं Google ऐप इंडेक्सिंग (https://developers.google.com/app-indexing/) के साथ हमारे ऐप को अनुपालन करना चाहता हूं। तथ्य यह है कि, मैं इसे हासिल करने की कोशिश कर पागल हो रहा हूँ। और सार्वभौमिक लिंक, कस्टम यूआरएल, ऐप इंडेक्सिंग, वेब सामग्री को चिह्नित करने के बीच भ्रम हर दिन बढ़ रहा है: -/ –

2

क्वेरी पैरामीटर के लिए आधार डोमेन (यानी https://www.mywebsite.com/pathOffOfTheBaseDomain?parameter=something) की बंद एक रास्ता के साथ जोड़ दिया उपयोग करें:

{ 
    "applinks": { 
    "apps": [], 
    "details": [ 
     { 
     "appID": "TEAMID.BUNDLEID", 
     "paths":[ "/pathOffOfTheBaseDomain" ] 
     } 
    ] 
    } 
} 

अनुसार Apple Universal Link documentation रहे हैं:

Note that only the path component of the URL is used for comparison. Other components, such as the query string or fragment identifier, are ignored.

पूरा यूआरएल परिपक्व होगा और AppDelegate की continueUserActivity विधि में पार्सिंग के लिए तैयार है।

संबंधित मुद्दे