2011-06-28 5 views
0

私はネイティブアプリとしてラップしようとしているweb-appを持っています。私はweb-appを表示するためにwebViewを使用しています。アプリにはたくさんの記事があり、その中には外部ページへのリンクがあります。これらのリンクをタップすると、webViewが外部ページを読み込み、ナビゲーションがすべて消えてしまい、基本的に外部サイトでロックされてしまいます。私はそれを完全にやめることなく、アプリに戻る可能性はない。WebView vs. Safari

私がしたいことは、WebViewにURLを読み込む前にURLを評価するスクリプトを作成することです。サーバーが私がweb-appを持っているサーバーと異なる場合、モバイルSafariを起動するリンクが必要です。私は多くのスクリプトをオンラインで見つけました。それは、私が望むもののようなものですが、それほど役に立ちません。彼らはhrefをチェックし、hrefがあればモバイルSafariを呼び出します。私の場合、これはほとんど機能しません。アプリ内のすべてのリンクにhrefが含まれているからです。

私は私がここで何をしようとしている例があります。

NSURL * requestURL = [[リクエストURL]保持]を。

場合(( [[requestURLスキーム] isEqualToString:@ "http://www.some-site.dk/"]!) & &(navigationType == UIWebViewNavigationTypeLinkClicked))
{
のNSLog( @ "ネイティブSafariで開いたリンク");
リターン![[UIApplication sharedApplication] openURL:[ requestURL autorelease]];
}
NSLog(@ "webViewでリンクが開かれました");
[requestURL release];
return YES;

URL文字列がobjective-cの内容と等しくないかどうかを確認するにはどうすればよいですか?

ご協力いただきますようお願い申し上げます。

答えて

0

ような何かを行うことができ、私が判断するためにrangeOfString機能を使用して終了アプリ。それ以外のものはすべてネイティブSafariに送信されます。ここで

は例です:

NSRange infoUrl = [filePath rangeOfString:@"DOMAIN_NAME.COM"]; 

if (infoUrl.location == NSNotFound) 
{ 
    return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ]; 
} 

return YES; 
1

URL文字列を保持しているかどうか、または完全にエスケープされているかどうかわかりませんが、URLをNSStringに移動すると、部分文字列を検索するツールがたくさんあります。

選択されたリンクは、ウェブ - を含む、ウェブサーバのドメイン名が含まれている場合、あなただけの不平等を確認したい場合、あなたは

if(![urlString isEqualToString:@"Whatever you want to test against"]) 
{ 

... execute code here 

} 
+0

は、あなたのURL文字列が中に保持されているタイプを正確に何を教えてもらえますか? – MarkHolbrook

+0

NSURL * requestURL = [[要求URL]保持]; – casper60

+0

NSURLの代わりにNSStringを使用する必要がありますか? – casper60

関連する問題