ios - 如何检测 iOS 11 中的 UIWebview 下降?

标签 ios swift uiwebview ios11

我有一个 UIWebView。我正在尝试实现 ios11 拖放功能。当我将项目从 Safari 拖放到我的 UIWebView 中时,我想知道将调用哪个委托(delegate)方法。有什么建议吗?

最佳答案

UIWebview 的大部分功能都是在一个名为 UIWebBrowserView 的未记录类中实现的。正是该 View 设置了“交互”属性,并且这些交互的委托(delegate)被设置为相同的 UIWebBrowserView。

根据您的需要,有 3 种检测跌落的选项:

1) 您可以在网页 View 的内容中使用 javascript 来检测掉落。这看起来像:

document.addEventListener('drop', function() {
     // Drop detected
} ) ;

2) 您可以在 UIWebBrowserView 中禁用拖放交互。这将允许它们向上传播到包含 View 之一,并且您可以在那里添加自己的交互。这看起来像:

webView.scrollView.subviews[0].interactions = @[] ;  

完成后,您可以创建自己的交互并将它们添加到容器 View 中:

 UIDropInteraction *dropInteration = [[UIDropInteraction alloc]initWithDelegate:myController] ;
 [webView addInteraction:dropInteration] ;
 webView.userInteractionEnabled = YES ;

然后您将在“myController”中实现 UIDropInteractionDelegate 功能

3) 您可以调整 UIWebBrowserView 并将 UIDropInteractionDelegate 方法替换为您自己的方法。

关于ios - 如何检测 iOS 11 中的 UIWebview 下降?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484559/

相关文章:

ios - Gamecenter "Welcome"- 横幅未显示

ios - 无法调用非函数类型的值'((成功 : Bool, 错误 : NSError?)抛出 -> Void)?)

ios - UIWebView 忽略 mailto

ios - 带 xpath/css 的 Swift/UIWebView

iOS UIImageView 分层问题

ios - 如何使用“详细信息披露”按钮?

ios - XCUITest - 按标签搜索按钮返回两个元素(按钮和静态文本)

ios - sysctlbyname错误函数 'sysctlbyname'的隐式声明在C99中无效

ios - 围绕 UITextView 创建 CGRect - 高度错误

ios - Cookie 不会让用户在 swift 3 中保持登录状态