我正在使用一个Web视图,我在其中加载一个HTML页面。它具有文档,其中每个页面在开始时被赋予链接(如索引)。
要求是:点击网页浏览量内容网址时,在默认的Safari应用程序中打开该链接,即在应用程序之外。
我的问题:当我点击内容链接时,它会将其检测为超链接并在外部Safari浏览器中打开它。如果我双击主页按钮 - >选择我的应用 - >再次点击相同的链接然后它在app浏览器中显示我的内容,即向下滚动到该内容。 我正在使用shouldStartLoadWithRequest委托方法,但它没有在第二种情况下调用。
我的问题:如何实现这两个目标。如果点击某个URL,则在外部应用程序中打开它。在上面的情况下,它应该向下滚动以显示页面内容。
以下示例代码:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
switch (navigationType) {
case UIWebViewNavigationTypeFormSubmitted:
// request was caused by an image that's being loaded
break;
case UIWebViewNavigationTypeBackForward:
// request was caused by an image that's being loaded
break;
case UIWebViewNavigationTypeReload:
// request was caused by an image that's being loaded
break;
case UIWebViewNavigationTypeFormResubmitted:
// request was caused by an image that's being loaded
break;
case UIWebViewNavigationTypeLinkClicked: {
// user clicked on link
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
case UIWebViewNavigationTypeOther:
// request was caused by an image that's being loaded
break;
}
return YES;
}
任何帮助?
答案 0 :(得分:0)
问题是您在重定向到safari后从shouldStartLoadWithRequest
方法返回YES。要实现所需的行为,您应该在第一种情况下返回NO,然后,当用户返回应用程序并第二次单击该链接时,您应该返回YES。因为WebView加载请求只需要一次。