मैंने हाल ही में पाया कि मेरा UIWebView आईटीएमएस लिंक पर चकित कर रहा था। विशेष रूप से, मेरे ऐप में UIWebView से, यदि मैं this one जैसी साइट पर नेविगेट करता हूं और "ऐप स्टोर पर उपलब्ध" लिंक पर क्लिक करता हूं, तो UIWebView "त्रुटि डोमेन = WebKitErrorDomain Code = 101 के साथ त्रुटि होगी URL को दिखाया नहीं जा सकता । "UIWebView में ऐप यूआरएल कैसे संभालें?
कुछ गुगलिंग के बाद, मुझे एहसास हुआ कि मुझे ऐप लिंक के लिए अनुरोधों को पकड़ने की आवश्यकता है और आईओएस उन्हें संभालता है। मैंने यह देखने के लिए शुरू किया कि क्या योजना -webView:shouldStartLoadWithRequest:navigationType:
में "itms" से शुरू होती है, लेकिन एहसास हुआ कि सिस्टम के अन्य प्रकार के ऐप लिंक हो सकते हैं। तो मैं इस के साथ आया था, बजाय:
- (void)webView:(UIWebView *)wv didFailLoadWithError:(NSError *)error {
// Give iOS a chance to open it.
NSURL *url = [NSURL URLWithString:[error.userInfo objectForKey:@"NSErrorFailingURLStringKey"]];
if ([error.domain isEqual:@"WebKitErrorDomain"]
&& error.code == 101
&& [[UIApplication sharedApplication]canOpenURL:url])
{
[[UIApplication sharedApplication]openURL:url];
return;
}
// Normal error handling…
}
मैं इस बारे में दो प्रश्न हैं:
- इस समझदार है? मैं विशेष रूप से त्रुटि डोमेन और त्रुटि कोड की जांच कर रहा हूं और URLInfo से URL स्ट्रिंग ला रहा हूं। क्या वह सामान बनी रहने की संभावना है?
- यह उपरोक्त लिंक किए गए ऐप स्टोर लिंक के लिए काम करता है, लेकिन जब मैं अपने ऐप पर वापस स्विच करता हूं, तो ऐसा लगता है कि "फ्रेम लोड बाधित" के साथ असफल असफल अनुरोध हुआ है। मैं इससे कैसे छुटकारा पा सकता हूं? ऐसा तब नहीं होता जब मेरे पास ओएस
-webView:shouldStartLoadWithRequest:navigationType:
से अनुरोध संभालता है, इसलिए यह थोड़ा परेशान है।
आप कैसे ऐसे अनुरोधों को संभालते हैं?
न सिर्फ आईट्यून्स - मेरे पास वेब दृश्यों के माध्यम से फेसबुक लॉगिन के साथ भी था। – Adam
यह मेरे लिए भी बहुत अच्छा काम करता है, धन्यवाद! – spstanley
मेरा दिन बचाएं, बहुत धन्यवाद – duan