1

同じアプリ内でURLスキームの呼び出しを処理することは可能ですか?

次に例を示します。私のアプリには、開くとサファリがトリガーされるhtmlリンクがあります。私がやりたいのは、そのリンクをタップすることです。アプリのどこにいても、ビューコントローラーはWebビューでプッシュされます。

これが可能であれば、どこでそれをしなければなりませんか?URLスキームの呼び出しを処理する場合は、アプリのデリゲートで処理する必要があります。この場合、どこでそれを行うべきですか?ビューコントローラをプッシュする必要がある場合、誰がそれをプッシュする責任がありますか?現在画面に表示されているappdelegateまたはViewController?

ありがとう :)

4

4 に答える 4

2
  1. UITapGestureRecognizer、リンクがラベルにある場合:

    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openLink:)];
    [yourLinkLabel addGestureRecognizer:gestureRecognizer];
    gestureRecognizer.numberOfTapsRequired = 1;
    gestureRecognizer.cancelsTouchesInView = NO;
    
  2. にロードされたWebページ内のリンクである場合はUIWebView、次を使用できますwebView:shouldStartLoadWithRequest:navigationType。ユーザーがのリンクをタップするたびに呼び出されますUIWebView

于 2012-06-22T05:28:07.737 に答える
2

私の質問を確認してください

私も同じ問題に直面しました。それがあなたを助けることを願っています。

ありがとう

于 2012-06-22T05:36:38.810 に答える
0

ビューコントローラを使用するのは面倒です。ページ内に新しいリンク/コンテンツをロードするためにjavascriptを使用する方が簡単であることがわかりました。このようにして、1つのWebビューが関与し、data/htmlファイルがシャッフルされます。さらに情報が必要な場合はお知らせください。

于 2012-06-22T05:40:28.277 に答える
0

これを試して。現在のコントローラーでこのコードを使用する

WebViewController *objWebViewController     =   [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
                objWebViewController.m_strHtml=[NSString stringWithString:@"www.google.com"];//m_strHtml is a NSString variable in WebViewController class
                [self.navigationController pushViewController:objWebViewController animated:YES];
                [objContentWebViewController release];

WebViewControllerでこれを使用します

NSURL *url = [[NSURL alloc] initWithString:m_strHtml];
        NSURLRequest * req = [[NSURLRequest alloc] initWithURL:url];
        [url release];
        [Webview loadRequest:req];
        [req release];

それ以外の場合は、Webビュー内にHTMLをロードでき、Webビューは
デフォルトとしてその中のリンクを開きます。次のコードを使用します。

m_strHtml=[[NSString alloc]initWithFormat:@"<html><body>%@</body></html>",m_strHtmlContent];//m_strHtmlContent is string variable to store the html content

        [Webview loadHTMLString:m_strHtml baseURL:Nil]; 
        Webview.backgroundColor=[UIColor clearColor];
于 2012-06-22T05:44:15.023 に答える