Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UIWebView中禁用PDF文件中的超链接_Iphone_Objective C_Ios_Pdf_Uiwebview - Fatal编程技术网

Iphone 在UIWebView中禁用PDF文件中的超链接

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

我有一个带有PDF文件的WebView,其中的一个文档包含我要禁用的超链接。我尝试使用这种方法,但没有成功,链接仍然打开并加载令人讨厌的URL:

  • 我将
    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文档中的链接。我不反对,我认为应该