我有一个网络应用程序,我正在尝试将其打包为本机应用程序。我正在使用webView来显示网络应用程序。该应用程序包含大量文章,其中一些文章包含指向外部页面的链接。当我点击这些链接时,webView将加载外部页面,我的所有导航都会消失,我基本上被锁定在外部网站上。我没有可能回到应用程序,没有完全退出。
我想要做的是,在将其加载到webView之前,有一个评估URL的脚本。如果服务器与我拥有网络应用程序的服务器不同,我希望链接能够启动移动版Safari。我在网上发现了很多脚本,它可以像我想要的那样,但并不完全。他们检查href,如果href存在则调用移动Safari。这在我的情况下不起作用,因为应用程序中的几乎所有链接都包含href。
我有一个例子,说明我在这里要做的事情:
NSURL * requestURL = [[request URL] retain];
if((! [[requestURL scheme] isEqualToString:@“http://www.some-site.dk/”]) &安培;&安培; (navigationType == UIWebViewNavigationTypeLinkClicked))
{
NSLog(@“在本地Safari中打开链接”);
return![[UIApplication sharedApplication] openURL:[ requestURL autorelease]];
} NSLog(@“在webView中打开链接”);
[requestURL release];
返回YES;
如何检查url字符串是否与objective-c中的内容不相同?
任何帮助将不胜感激!
答案 0 :(得分:1)
我不确定你拿着你的URL字符串是什么,或者它是否完全转义但是如果你将URL移动到某种NSString,那么有很多工具可以查找子字符串。
如果您只是想检查不平等,那么您可以执行类似
的操作if( ![urlString isEqualToString:@"Whatever you want to test against"] )
{
... execute code here
}
答案 1 :(得分:0)
我最终使用rangeOfString函数来确定所选链接是否包含包含web-app的Web服务器的域名。其他所有内容都会发送到本地Safari。
以下是一个例子:
NSRange infoUrl = [filePath rangeOfString:@"DOMAIN_NAME.COM"];
if (infoUrl.location == NSNotFound)
{
return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
}
return YES;