以下のコードを使用して、Safari で HTML5 アプリ内のリンクを開こうとしました。ただし、コードは、アプリ内の内部ナビゲーションを目的とした # リンクも Safari で開いています。リンクの先頭に HTTP が追加されているため、Safari でリンクが開かれていますか? もしそうなら、どうすればこのスクリプトを修正してそれらを除外できますか?
ありがとう。
参考のため
こちらの GIT リポジトリをご覧ください: https://github.com/philhudson91/flaming-cyril
または、ホストしているドメインからのリンクが開かないように書くことはできますか?
アップデート
これが私が現在使用しているコードです...
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
NSURL *requestURL =[ [ request URL ] retain ];
NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"#"] invertedSet];
if ([ [ requestURL scheme ] isEqualToString: @"http" ]) NSLog(@"HTTP"); if ([ [ requestURL scheme ] isEqualToString: @"https" ]) NSLog(@"HTTPS"); if (( [ [requestURL absoluteString] rangeOfCharacterFromSet:set].location == NSNotFound )) NSLog(@"Not Local"); if (( [ [ requestURL scheme ] isEqualToString: @"mailto" ])
&& ( navigationType == UIWebViewNavigationTypeLinkClicked ) ) {
return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
}
[ requestURL release ];
return YES;
}