Iphone 在UIWebView中禁用PDF文件中的超链接
我有一个带有PDF文件的WebView,其中的一个文档包含我要禁用的超链接。我尝试使用这种方法,但没有成功,链接仍然打开并加载令人讨厌的URL:Iphone 在UIWebView中禁用PDF文件中的超链接,iphone,objective-c,ios,pdf,uiwebview,Iphone,Objective C,Ios,Pdf,Uiwebview,我有一个带有PDF文件的WebView,其中的一个文档包含我要禁用的超链接。我尝试使用这种方法,但没有成功,链接仍然打开并加载令人讨厌的URL: 我将UIWebViewDelegate放入我的ViewController.h 然后我将此代码放入我的ViewController.m: 有没有办法让这个简单易用?我承认我在上述过程中可能会犯一些错误 编辑: 上面的代码对我也没有任何作用只需将UIWebView的dataDetectorTypes属性设置为None: [myReadingArticle
UIWebViewDelegate
放入我的ViewController.h
ViewController.m
:上面的代码对我也没有任何作用只需将
UIWebView
的dataDetectorTypes
属性设置为None:
[myReadingArticlesWebView setDataDetectorTypes:UIDataDetectorTypeNone];
只需将
UIWebView
的dataDetectorTypes
属性设置为None:
[myReadingArticlesWebView setDataDetectorTypes:UIDataDetectorTypeNone];
基于所有来回的评论 所以现在你需要做的不是简单地在你的
shouldStartLoadWithRequest
方法,如果加载的URL来自本地,则需要回答“是”,如果来自其他任何地方,则需要回答“否”。使用
[request.URL isFileReferenceURL]
方法来检查它是否是本地文件。注意:此方法显然只适用于iOS 5及更高版本,请参阅
希望这能帮到你:-)基于所有的评论 所以现在你需要做的不是简单地在你的
shouldStartLoadWithRequest
方法,如果加载的URL来自本地,则需要回答“是”,如果来自其他任何地方,则需要回答“否”。使用
[request.URL isFileReferenceURL]
方法来检查它是否是本地文件。注意:此方法显然只适用于iOS 5及更高版本,请参阅
希望这能为您做到:-)如果正如trumpetlicks所说,PDF查看器忽略您在shouldStartLoadWithRequest中所说的内容,并且如果您不想禁用所有链接(设置DataDetector可以做到这一点)
然后,您可以尝试创建一个从NSURLProtocol派生的类,并将其注册到您的应用程序委托中。这将能够拦截来自pdf的网络流量,并让您有机会过滤链接并停止您不想退出的链接。如果正如trumpetlicks所说,pdf查看器忽略您在shouldStartLoadWithRequest中所说的内容,并且如果您不想禁用所有链接(设置数据检测器可以做到这一点)
然后,您可以尝试创建一个从NSURLProtocol派生的类,并将其注册到您的应用程序委托中。这将能够拦截来自pdf的网络流量,并让您有机会过滤链接并停止您不想退出的链接。出于好奇,您是否尝试过简单地从该例程返回“否”,而不是将其放入if-else逻辑中?此时它是否停止从PDF移动到链接?下面是您可能希望查看的StackOverflow链接。我不知道你真的想用你的PDF做什么,但如果你想让内部链接的项目保持活动状态,同时不允许外部链接的项目,这就是你应该看的地方@trumpetlicks当然,我这样做了,但它不起作用,我认为这是因为一旦Apple代码的PDF阅读器部分接管了UIWebview内部,链接的处理方式就完全不同了(也就是说,它们不会通过标准的UIWebview框架)。只能通过shouldStartLoadWithRequest重载控制直接webish类型的链接。看一看我留下的第二条评论,并尝试探索这个想法,以便更好地控制PDF中的所有链接!好的,我来试试,谢谢!出于好奇,您是否尝试过简单地从该例程返回NO,而不是加入if-else逻辑?此时它是否停止从PDF移动到链接?下面是您可能希望查看的StackOverflow链接。我不知道你真的想用你的PDF做什么,但如果你想让内部链接的项目保持活动状态,同时不允许外部链接的项目,这就是你应该看的地方@trumpetlicks当然,我这样做了,但它不起作用,我认为这是因为一旦Apple代码的PDF阅读器部分接管了UIWebview内部,链接的处理方式就完全不同了(也就是说,它们不会通过标准的UIWebview框架)。只能通过shouldStartLoadWithRequest重载控制直接webish类型的链接。看一看我留下的第二条评论,并尝试探索这个想法,以便更好地控制PDF中的所有链接!好的,我来试试,谢谢!如上所述,我不相信一旦苹果代码的PDF查看器部分接管,UIWebView会继续控制链接。如果它不能用shouldStartLoadWithRequest的is重载来控制,那么我认为这个方法也行不通。顺便说一句,我真的很喜欢这个主意,以前也不知道,所以我可能会找到一些好的用途。THNX:-)不管UIWebView中的文档是PDF、HTML还是其他格式。重写
setDataDetectorTypes:
应该忽略PDF文档中的链接。我不反对,我认为应该忽略。不幸的是,我不能在我的mac面前尝试@塞吉乌斯吉刷新我的答案。另外,将该语句放在viewDidLoad
中,它应该对您有用。@WrightsCS尝试过这一点,我甚至将其放在viewDidLoad
中,但仍然没有结果。链接仍然打开。正如上面所评论的,我不相信一旦苹果代码的PDF查看器部分接管,UIWebView会继续控制链接。如果它不能用shouldStartLoadWithRequest的is重载来控制,那么我认为这个方法也行不通。顺便说一句,我真的很喜欢这个主意,以前也不知道,所以我可能会找到一些好的用途。THNX:-)不管UIWebView中的文档是PDF、HTML还是其他格式。重写setDataDetectorTypes:
应该忽略PDF文档中的链接。我不反对,我认为应该