Xcode Open target=\u Safari中的空白链接
我对Xcode很陌生。。。我有一个单页iOS应用程序,它只有一个打开特定URL的UIWebView。我希望页面中有Xcode Open target=\u Safari中的空白链接,xcode,uiwebview,external-links,Xcode,Uiwebview,External Links,我对Xcode很陌生。。。我有一个单页iOS应用程序,它只有一个打开特定URL的UIWebView。我希望页面中有target=“\u blank”的链接可以在Safari中打开,而不是在应用程序中打开 有人能告诉我如何做到这一点吗?(我到处都搜索过)还告诉我哪些文件和代码放在哪里?非常感谢你 编辑 我在ViewController.m文件中实现了以下代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any addition
target=“\u blank”
的链接可以在Safari中打开,而不是在应用程序中打开
有人能告诉我如何做到这一点吗?(我到处都搜索过)还告诉我哪些文件和代码放在哪里?非常感谢你
编辑
我在ViewController.m文件中实现了以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Add line below so that external links & PDFs will open in Safari.app
webView.delegate = self;
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/"]]];
}
// Add section below so that external links & PDFs will open in Safari.app
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:request.URL];
return false;
}
return true;
}
但是对于行webView.delegate=self代码>我收到一条黄色警告,上面写着:
从不兼容的类型“UIWebViewController*const\u strong”分配给“id”
这个错误是什么?我如何在Xcode中修复它 也许下面的答案能解决你的问题,或者至少能给你一些想法,让你知道如何实现你的目标:
这就是我们解决问题的方法:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
first.delegate = (id)self;
[first loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.website.com"]]];
}
// Add section below so that external links & PDFs will open in Safari.app
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeOther) {
NSString *checkURL = @"http://www.linkyouwanttogotoviasafari.com";
NSString *reqURL = request.URL.absoluteString;
if ([reqURL isEqualToString:checkURL])
{
[[UIApplication sharedApplication] openURL:request.URL];
return false;
}
else {
return true;
}
}
return true;
}
上面我在原始问题中更新的代码对我有效,但你能帮我解决错误吗?webview的Delegate属性webview。Delegate
的类型id
,与作为ViewController的self
的类型不匹配(在您的情况下,我认为类名是UIWebViewController,这是基于您的注释中的异常)。您可以通过一种或两种方式解决此问题:通过以下方式进行类型转换Self
:webView.delegate=(id)Self;
或在类(.h文件)中声明delegate)@interface ViewController:UIViewController
。如果这没有帮助,请告诉我。只有当您知道要在safari中打开的确切url,并且不处理任何设置了target=“\u blank”
的常规链接时,这才是非常好的