-2

HTMLファイルをWebビューに表示しています。ユーザーがハイパーリンクをクリックしたときに、同じアプリの別のビューに移動したいのですが、どうすればよいですか?

"href="新しいビューコントローラ""

「新しいビューコントローラ」のURLは何ですか?

それを見つける方法は??

ありがとう。

4

2 に答える 2

0

それは簡単です。HTML を作成している場合は、リンクがどのように見えるかを知っておく必要があります。その場合は、webview をロードする前にリンクをチェックするだけです。webview のデリゲートを self に設定してから、次のようにする必要があります。

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *urlString = [NSString stringWithFormat:@"%@", request.URL];
if([urlString isEqualToString:@"http://www.myCustomHyperLink"])
{
 [self.navigationController pushViewController:myNextViewController];
 return NO;
}
return YES;
}

上記の例では、URL が次のビューを開くために必要な URL である場合、ナビゲーション コントローラーは次のビュー コントローラーをプッシュして NO を返し、Web ビューが再読み込みされないようにします。それ以外の場合、webview はページをリロードします。

if ステートメントは、必要に応じて変更できます。

これを次のようなアプリケーションで使用します。

ビューに複数のリンクがあります。そのため、リンクが自分のものである場合は、2 番目のビュー コントローラーで開きます。それ以外の場合は、Safari を開きます。これは、アプリケーションをブラウザーに変えたくないためです。だから私は次のようなものを持っています:

if([urlString rangeOfString:@"www.myDomain.com"].location == NSNotFound)
{
 [[UIApplication sharedApplication] openURL:request.Url];
}
else 
...push the next view controller how I showed you above.
于 2012-09-11T09:49:23.263 に答える
0

ビュー コントローラーに使用するアドレスはありませんが、アンカーのクリックをキャプチャするイベントを追加できます。

これは例です:

HTML ファイル内:

<a href="#HELLO">Hello World</a>


あなたの.mファイル(xCode)で:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request   navigationType:(UIWebViewNavigationType)navigationType{

NSURL * URL = [request URL];

if ([URL rangeOfString:@"#HELLO"].location != NSNotFound) {
// Do whatever you want here.
}

return YES;
}

shouldStartLoadWithRequest は、webview の場所が変更されるたびにアクティブになります。アンカーをクリックすると、場所は次のようになります: file.html#HELLO

于 2012-09-11T08:08:55.197 に答える