2012-03-09 7 views
6

私はiPadのアプリ内に小さなwebview(320x480)を挿入しようとしていました。しかし、uiwebviewがhttp://mobile.twitter.comを読み込むためにNSUrlRequestを取得するたびに、私のアプリは自動的に画面から切り取られ、iOSはiPad用のTwitterを開きます。UIWebViewでhttp://mobile.twitter.comをリクエスト

この動作を変更する方法はありますか?

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"]]]; 

EDITED:ここ

は私がやっているものだ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"]]]; 

しかし、今、新たな問題が直面:

[OK]を、私はここで、解決策を見つけたモバイルを.twitter.comは、私が指定した320ピクセルの幅ではなく、iPadのスクリーンのサイズに適応しようとしています。

+0

あなたはUIWebViewコードを投稿できますか? –

+0

あなたはこのビューにツイッターWebページを表示したいのですか、それともユーザーや他の何かに利用できるようにしたいですか? –

+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(URLは「https」です)に接続すると、Twitterのログイン画面が表示されますが、サイトではアプリをtwitter:// timeline afterにリダイレクトしようとしますログインしてください。公式のTwitterネイティブモバイルアプリがデバイスにインストールされていない場合は、UIWebViewでTwitterモバイルサイトを参照することはできません。 Twitterのネイティブアプリがインストールされている場合は、UIWebViewでモバイルサイトを参照する代わりに、そのアプリにリダイレクトされます。

奇妙なことは、モバイルSafariで同じことを試してみると、ネイティブのTwitterモバイルアプリにこのリダイレクト動作が適用されないということです。

これは、UIWebView内のモバイルTwitterサイトにアクセスするいくつかのアプリケーションを壊すので、これはTwitter側からの新しい制限ですか?

他のユーザーがこの同じ新しい動作を経験しているかどうかはわかりませんか?

PS:Twitterの開発者のサポートディスカッションボードをチェックして、他の誰かが同じ問題が発生していますか?

+1

私はそれがwebviewのユーザエージェントに関連していることを知りました。そのため、UIWebViewとMobileSafariの間の動作が異なります。 – JulianoRossi

+0

これを動作させる修正がありますか? –

+0

私の質問の上にある "EDITED"を見てください。 – JulianoRossi