2012-03-09 19 views
6

मैं अपने iPad ऐप्लिकेशन के अंदर एक छोटे से वेबव्यू (320x480) सम्मिलित करने के लिए, एक छोटे से "iPhone स्क्रीन" मोबाइल चहचहाना प्रदर्शित की नकल कर रहा किया गया है पर http://mobile.twitter.com का निवेदन। लेकिन, हर बार uiwebview को http://mobile.twitter.com लोड करने के लिए NSUrlRequest मिलता है, मेरा ऐप स्वचालित रूप से स्क्रीन से फिसल जाता है, और आईओएस आईपैड के लिए ट्विटर खोलता है।UIWebView

क्या उस व्यवहार को बदलने का कोई तरीका है?

UIWebView *viewDoTwitter = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.bounds.size.height)]; 
viewDoTwitter.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
viewDoTwitter.scalesPageToFit = YES; 

[rootView insertSubview:viewDoTwitter atIndex:0]; 
[viewDoTwitter loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://mobile.twitter.com"]]]; 

संपादित:

यहाँ मैं क्या कर रहा है

ठीक है, मैं समाधान, मिली: http://www.mphweb.com/en/blog/easily-set-user-agent-uiwebview

UIWebView *viewDoTwitter = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.bounds.size.height)]; 
viewDoTwitter.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
viewDoTwitter.scalesPageToFit = YES; 

NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary]; 

[rootView insertSubview:viewDoTwitter atIndex:0]; 

[viewDoTwitter loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.twitter.com"]]]; 

लेकिन, अब एक नई समस्या का सामना करना पड़: मोबाइल .twitter.com ने निर्दिष्ट 320 पिक्सेल चौड़ाई के बजाय, आईपैड स्क्रीन के आकार को अनुकूलित करने का आग्रह किया।

+0

क्या आप कृपया UIWebView कोड पोस्ट कर सकते हैं? –

+0

आप इस दृश्य में केवल ट्विटर वेब पेज प्रदर्शित करना चाहते हैं या इसे उपयोगकर्ता या किसी और चीज़ के लिए उपयोग करने योग्य बनाना चाहते हैं? –

+0

हां, इसे उपयोगकर्ता के लिए उपयोग करने योग्य होना चाहिए। – JulianoRossi

उत्तर

1

आप इस तरह कर रहे हैं, तो आप

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSURL *url = [NSURL URLWithString:@"http://mobile.twitter.com"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:request]; 
} 

व्यवहार आप वर्णित कोड की इस पंक्ति के द्वारा प्राप्त नहीं पुनः निर्देशित किया जाना चाहिए (रीडायरेक्ट):

[[UIApplication sharedApplication] openURL:url]; 
+0

मैं यह कर रहा हूं: [viewDoTwitter loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString: @ "http://m.twitter.com"]]]; – JulianoRossi

1

मैंने कई ऐप्स में UIWebView में इस नए व्यवहार को भी देखा। यह आज ही शुरू हो गया है क्योंकि कल के रूप में ये सभी ऐप्स ठीक काम करते थे।

यदि आप UIWebView में https://mobile.twitter.com (यूआरएल "https" है) को कनेक्ट करने का प्रयास करते हैं तो आपको ट्विटर लॉगिन स्क्रीन पर मिल जाएगा, लेकिन क्रेडेंशियल दर्ज करने के बाद साइट आपके ऐप को ट्विटर पर रीडायरेक्ट करने का प्रयास करती है: // टाइमलाइन लॉग इन करना। अगर आपके पास डिवाइस पर आधिकारिक ट्विटर मूल मोबाइल ऐप इंस्टॉल नहीं है तो आप UIWebView में ट्विटर मोबाइल साइट ब्राउज़ नहीं कर सकते हैं। यदि आपके पास ट्विटर मूल ऐप इंस्टॉल है तो आपको UIWebView में मोबाइल साइट ब्राउज़ करने के बजाय उस ऐप पर रीडायरेक्ट कर दिया जाएगा।

अजीब बात है कि अगर आप मोबाइल सफारी में एक ही बात की कोशिश आप देशी ट्विटर मोबाइल एप्लिकेशन को यह पुनर्निर्देशन व्यवहार नहीं मिलता है।

ट्विटर की ओर से नए प्रतिबंध के इस किसी प्रकार के रूप में इस जो एक UIWebView के भीतर मोबाइल ट्विटर साइट पर पहुँच क्षुधा की एक संख्या टूट जाएगा है।

मुझे यकीन नहीं है कि अन्य उपयोगकर्ताओं ने इस नए व्यवहार का अनुभव किया है ??

पीएस: बस ट्विटर डेवलपर के समर्थन चर्चा बोर्ड की जांच की गई है और किसी और को एक ही समस्या का सामना करना पड़ रहा है ??

+1

मुझे पता चला कि यह वेबव्यू के उपयोगकर्ता-एजेंट से संबंधित है, यही कारण है कि UIWebView और MobileSafari के बीच व्यवहार अलग-अलग हैं। – JulianoRossi

+0

क्या आपके पास कोई फिक्स है जो इसे काम करता है? –

+0

शीर्ष पर मेरे प्रश्न पर "संपादित" देखें। – JulianoRossi