ios – 如何使用UIWebView Delegate的shouldStartLoadWithRequest方法

ios – 如何使用UIWebView Delegate的shouldStartLoadWithRequest方法,第1张

概述我需要从UIWebView中显示的URL中删除超链接,我已经看过这个问题: Removing hyper links from a URL shown in UIWebView. 我知道我需要使用这个方法: - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigati 我需要从UIWebVIEw中显示的URL中删除超链接,我已经看过这个问题: Removing hyper links from a URL shown in UIWebView.

我知道我需要使用这个方法:

- (BOol)webVIEw:(UIWebVIEw *)webVIEw shouldStartLoaDWithRequest:(NSURLRequest *)request navigationType:(UIWebVIEwNavigationType)navigationType

但我似乎仍有一些问题.

首先,我如何避免某些链接(例如:www.Google.com).

接下来,我如何避免UIWebVIEw中的所有链接?

我的代码看起来像这样:

[webUI loadHTMLString:[strDescription stringByDeCodingHTMLEntitIEs] baseURL:nil];webUI.dataDetectorTypes = UIDataDetectorTypeNone;- (voID)webVIEwDIDFinishLoad:(UIWebVIEw *)webVIEw {    NSLog(@"finish loading");    [webUI stringByEvaluatingJavaScriptFromString:@"document.styleSheets[0].addRule(\".active\",\"pointer-events: none;\");document.styleSheets[0].addRule(\".active\",\"cursor: default;\")"];}- (BOol)webVIEw:(UIWebVIEw *)webVIEw shouldStartLoaDWithRequest:(NSURLRequest *)request navigationType:(UIWebVIEwNavigationType)navigationType{       return YES;}

需要一些指导.谢谢..

HTML字符串如下所示:

> <div ><div ><div> ><p><span ><strong>Optimal Performance Always</strong></span><span> ><br /></span></p><p><span >The standard servicing package<a> href="http://www.Google.com">www.Google.com</a></div>
解决方法 如果要在加载第一个页面后禁用所有链接,则可以在页面加载时添加属性以存储并在webVIEw上使用其值:shouldStartLoaDWithRequest:

@property(nonatomic) BOol pageLoaded; // initially NO- (voID)webVIEwDIDFinishLoad:(UIWebVIEw *)webVIEw {    NSLog(@"finish loading");    [webUI stringByEvaluatingJavaScriptFromString:@"document.styleSheets[0].addRule(\".active\",\"cursor: default;\")"];    // after all your stuff    self.pageLoaded = YES;}- (BOol)webVIEw:(UIWebVIEw *)webVIEw shouldStartLoaDWithRequest:(NSURLRequest *)request navigationType:(UIWebVIEwNavigationType)navigationType {   return ! self.pageLoaded;}

请注意,这不会隐藏链接,它只会使webvIEw无法加载它们.

此外,您可以在webVIEw上检查request.URL:shouldStartLoaDWithRequest:navigationType:仅加载某些页面.另一种方法是检查navigationType值:

enum {   UIWebVIEwNavigationTypelinkClicked,UIWebVIEwNavigationTypeFormsubmitted,UIWebVIEwNavigationTypeBackForward,UIWebVIEwNavigationTypeReload,UIWebVIEwNavigationTypeFormResubmitted,UIWebVIEwNavigationTypeOther};
总结

以上是内存溢出为你收集整理的ios – 如何使用UIWebView Delegate的shouldStartLoadWithRequest方法全部内容,希望文章能够帮你解决ios – 如何使用UIWebView Delegate的shouldStartLoadWithRequest方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1038622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存