簡體   English   中英

在UIWebView中禁用PDF文件中的超鏈接

[英]Disable hyperlinks in PDF file in UIWebView

我有一個帶PDF文件的WebView,並且其中的文檔包含我要禁用的超鏈接。 我嘗試使用這種方法,但是沒有用,鏈接仍然打開並加載了討厭的URL:

  1. 我將UIWebViewDelegate放在ViewController.h
  2. 然后,將這段代碼放入ViewController.m
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (webView == myReadingArticlesWebView) {
        return NO;
    }
    else {
        return YES;
    }
}

有什么想法可以使它變得簡單易用嗎? 我承認我在上述過程中可能會犯一些錯誤。

編輯:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if ([request.URL isFileReferenceURL]) {
        return YES;
    } else {
        return NO;
    }
}

上面的代碼對我也沒有任何幫助

只需將UIWebViewdataDetectorTypes屬性設置為None即可

[myReadingArticlesWebView setDataDetectorTypes:UIDataDetectorTypeNone];

根據所有來回評論!!!

因此,現在您需要做的是,而不是簡單地在您的

shouldStartLoadWithRequest 

方法,如果要加載的URL來自本地,則需要回答“是”,如果來自其他地方,則需要“否”。 使用

[request.URL isFileReferenceURL] 

檢查它是否是本地文件的方法。 注意:此方法顯然僅適用於iOS 5及更高版本,請查看

檢查NSURL是否為本地文件

希望這對你有幫助:-)

如果像trumpetlicks所說的那樣,PDF查看器將忽略您在shouldStartLoadWithRequest中所說的內容,並且如果您不想禁用所有鏈接(設置datadetector會這樣做)。

然后您可以嘗試的另一種方法是創建一個從NSURLProtocol派生的類,並將其注冊到您的應用程序委托中。 這將能夠攔截源自pdf的網絡流量,並為您提供過濾鏈接和阻止不希望出站的鏈接的機會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM