0
NSURL *url = [NSURL URLWithString:@"valid_webcal_url"];
if (![[UIApplication sharedApplication] openURL:url])
{
    // failure callback
    NSLog(@"%@%@",@"Failed to open url:",[url description]);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:LCHLocalizedString(@"SUBSCRIBE_ERROR", nil) message:nil delegate:self cancelButtonTitle:@"Okay" otherButtonTitles: nil];
    [alert show];
}

それで、webcalのロード中にエラーが発生したかどうかを確認する方法を理解しましたが、webcalが正常にロードされたことをどのように知ることができますか?「サブスクライブ」ボタンをタップするとローダーが表示され、いつオフにするかを知る必要があります。

4

2 に答える 2

1

コメントですでに述べたように、これはアプリをバックグラウンドに置き、自動復帰の保証された手段はありません。

(Web API呼び出しを行うのではなく)実際にWebページを呼び出したいと仮定すると、おそらくUIViewController、が埋め込まれたカスタムサブクラスを作成する必要がありますUIWebView

サブクラスをの代理人として設定するUIWebViewと、失敗/成功に対応できるようになります。UIWebView通話を傍受して停止することもできます- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

于 2013-02-19T20:00:07.930 に答える
1

これはopenURLwebcalプロトコルを使用してアイテムを取得するために使用されているため、アプリとwebcalの取得を視覚的に分離することはできません。

私がしなければならないのはUIApplicationWillResignActiveNotification、呼び出し後に通知をリッスンすることですopenURL。通知が発生すると、openURL呼び出しからWebcalが引き継ぐと思います。

これはトリッキーなビジネスであり、基本的な修正ですが、うまくいきます。すべてのヘルプ/提案をありがとう。

于 2013-02-19T20:13:10.663 に答える