如何处理嵌入在webview iOS 10中的链接数据检测器UITextView / Link

时间:2016-09-20 08:09:33

标签: ios objective-c

在我们的应用程序中,我们在textview / webview中嵌入了SAFETY链接,如图所示。 iOS 10之前收到点击时

- openURL:方法将被触发,我们处理重定向,如下所示。

- (BOOL)openURL:(NSURL *)url
{
    if ([url shouldHandleLocally])
    {
        return [self openURLApp:url isFromOtherApp:NO];
    }
    return [super openURL:url];
}

现在在iOS 10中,此方法都没有触发-canOpenURL: -openURL:,而且在文档中提到了

  
      
  • (BOOL)openURL:(NSURL *)url NS_DEPRECATED_IOS(2_0,10_0,"请使用openURL:options:completionHandler:而不是")   NS_EXTENSION_UNAVAILABLE_IOS("&#34);
  •   

即使是以下方法也不会被解雇。

- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion {
}

如何处理此案件?任何帮助将不胜感激。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您的链接位于UITextView中,那么您应该使用UITextViewDelegateoptional()功能。您的委托将能够捕获与UITextView中的链接的交互,然后您可以调用您的逻辑来在内部处理URL。从委托方法返回textView(_:shouldInteractWith:in:interaction:)以防止iOS在适当的时候在其浏览器中打开URL。