iphone - WebView 与 Safari

标签 iphone objective-c ios uiwebview mobile-safari

我有一个网络应用程序,我正在尝试将其包装为 native 应用程序。我正在使用 webView 来显示网络应用程序。该应用程序包含大量文章,其中一些文章具有外部页面的链接。当我点击这些链接时,webView 将加载外部页面,我的所有导航都会消失,我基本上被锁定在外部站点。如果不完全退出该应用程序,我就无法返回该应用程序。

我想要做的是,有一个脚本在将 URL 加载到 webView 之前对其进行评估。如果服务器与我拥有网络应用程序的服务器不同,我想要启动移动 Safari 的链接。我在网上找到了很多脚本,它们的功能与我想要的类似,但又不完全一样。它们检查 href,如果存在 href,则调用移动 Safari。这在我的情况下不起作用,因为应用程序中几乎所有链接都包含 href。

我在这里有一个我想要做的事情的例子:

NSURL *requestURL = [ [request URL] retain ];

if (( ![ [requestURL scheme] isEqualToString: @"http://www.some-site.dk/" ] ) && ( navigationType == UIWebViewNavigationTypeLinkClicked ))
{
NSLog(@"Link opened in native Safari");
return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
}
NSLog(@"Link opened in webView");
[ requestURL release ];
return YES;

如何检查 url 字符串是否不等于 Objective-C 中的某些内容?

任何帮助将不胜感激!

最佳答案

我不确定你保存 URL 字符串的内容,或者它是否完全转义,但如果你将 URL 移动到某种 NSString,那么有很多工具可以查找子字符串。

如果你只是想检查不平等,那么你可以这样做

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

... execute code here

}

关于iphone - WebView 与 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506790/

相关文章:

iphone - 全局定义服务器IP

ios - 为什么在实例被释放时设置委托(delegate)为零?

objective-c - Apple Music API - 创建播放列表

objective-c - 将文本字段保持在键盘上方

objective-c - NSLog 和 DLog 的区别

iOS:添加复选标记以选择 TableView 中的特定行

ios - 一些涉及 block 方法和 OCMockito 的验证

iphone - 本地化日期不翻译日期

iphone - 使用 Objective C 读取发布到设备控制台的日志消息

iphone - 当我确实需要使用 [NSThread sleepForTimeInterval :1];