2010-12-06 8 views
1

私はSMSを送信するためにopenURLコマンドを使用していますが、サファリを開くと 私はバックグラウンドで開くようにコマンドを送信できますか?ipadアプリはバックグラウンドでブラウザを開きます

すなわち、ユーザがブラウザの開口部またはそれを与え、アプリ内に留まるメッセージを参照してくださいいけない、

NSURL *url = [NSURL URLWithString: @"https://smsgw.exetel.com.au/sendsms/api_sms.php?username=xxx&password=xx&mobilenumber=0xxx&message=xxr&sender=mk&messagetype=Text&referencenumber=04"]; 

[[UIApplication sharedApplication] openURL: url]; 

はありがとう

+0

"xcode app"としては何もありません。 xcodeはIDEのみです。 – vikingosegundo

+0

それは可能であれば、それは少し悪いかもしれないように聞こえる。 –

答えて

5

あなたは、SafariがあなたのためのURLを開くことはできませんバックグラウンドで

NSURL *url = [NSURL urlWithString:@"...whatever..."]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url delegate:nil]; 
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request]; 
[connection start]; 
2

あなたは、このアプリ内のUIWebViewを作成し、インスタンス上loadRequest:を呼び出して、このようにすること行うことができます:

しかし、あなたはちょうどあなたが試みることができる、URLを要求し、戻ってくるものは何でも無視したいと仮定
UIWebView *webView = [[UIWebView alloc] init]; 

webView.delegate = self; 

NSURL *url = [NSURL URLWithString: @"https://smsgw.exetel.com.au/sendsms/api_sms.php?username=xxx&password=xx&mobilenumber=0xxx&message=xxr&sender=mk&messagetype=Text&referencenumber=04"]; 
NSUrlRequest *request = [[NSUrlRequest alloc] initWithURL:url]; 
[webView loadRequest:request]; 

これは、モバイルSafariにあなたを送信せずに、アプリケーション内のURLを読み込みます。このメソッドがNSUrlConnectionを超える利点は、UIWebViewDelegateプロトコルに準拠し、webViewDidFinishLoad:をデリゲートクラスに実装すると、呼び出しが成功したかどうかを確認できます。

+0

あなたがエラーを捕まえたいのであれば、Webビューは物事をより明確に分解することに絶対に同意します。 NSURLConnectionのさまざまな読み込み応答を(NSURLRequestに実際のデリゲートを渡すことで)キャッチできますが、HTTP戻りコードを検査する必要があります(たとえば、通常は404がページを返すなど)。 Webビューはおそらくより重いですが、それは非常に問題になることはまずありません。あなたの答えは – Tommy

+0

+1です。それはおそらく正確に彼が必要とする、軽い体重のフォームになります。 –

関連する問題