我有一个UIWebView
。我正在尝试执行ios11
拖放功能。当我从Safari拖动项目并将其放入我的UIWebView
中时,我想知道将调用哪个委托方法。有什么建议么?如何在iOS 11中检测UIWebview放置?
回答
UIDragInteractionDelegate & UIDropInteractionDelegate协议是你正在寻找的。
检查了这一点还有:How to Drop Images in UIViewController with UIDropInteraction (Ep 1)
这是一个用于正常UIView拖放的操作。 –
大多数的UIWebView的功能被称为UIWebBrowserView无证类实现。它的'交互'属性集和这些交互的委托的视图被设置为同一个UIWebBrowserView。
根据您的需求,有3个选项来检测降:
1)你可以使用JavaScript的Web视图的内容来检测的下降。这看起来像这样:
document.addEventListener('drop', function() {
// Drop detected
}) ;
2)您可以禁用UIWebBrowserView中的拖放交互。这将允许他们传播到其中一个包含视图,并且您可以在其中添加自己的交互。这将是这样的:
webView.scrollView.subviews[0].interactions = @[] ;
一旦你做到了这一点,在你可以创建自己的互动,并将它们添加到容器中的观点:
UIDropInteraction *dropInteration = [[UIDropInteraction alloc]initWithDelegate:myController] ;
[webView addInteraction:dropInteration] ;
webView.userInteractionEnabled = YES ;
你会然后实现在UIDropInteractionDelegate功能“ myController'
3)你可以改变UIWebBrowserView并用你自己的替换UIDropInteractionDelegate方法。
我不认为2和3会工作。我正在尝试第一个选项。我如何才能在js中获取丢弃的文本或图像? –
事实上,我能够同时获得'2'和'3'的工作,但是我无法获得'1'的工作,因为我碰到了和你一样的绊脚石。我无法确定被丢弃的对象。 我的javascript技能是有限的,但我怀疑可以使用javascript获取有关放置对象的信息。我只是不知道该怎么做。 就我而言,我决定'2',因为它是一行来禁用drop的默认行为。我甚至可以通过检查现有交互的类并仅删除dropInteraction来保留默认的拖动交互。 –
是的,我正在尝试你建议的第二个选项。我也正在获取执行下降的数据。拖动UIWebView时是否可以移动光标?你做完了吗?。还有,你如何为被丢弃的内容制作动画? –
- 1. 如何在iOS中检测UIWebView中音频的播放状态?
- 2. 如何检测UIWebView的缩放比例
- 3. 在UIWebview(iOS)中检测返回按钮
- 4. 在UIWebView中检测缩放比例
- 5. 检测的iOS设备11
- 6. JS - 检测UIwebView
- 7. IOS如何避免UIWebview媒体播放器在UIWebview中弹出
- 8. 如何在UIAlertView中放置一个UIWebView?
- 9. 在UIWebView中检测下载
- 10. 在UIWebView中检测双击
- 11. 如何在iOS 11中将导航栏设置为透明11
- 12. iOS UIWebView检测混合SSL内容
- 13. 错误放置11
- 14. 如何在UIWebView上检测触摸
- 15. 如何检测UIWebView中的重定向
- 16. 视觉框架条码检测iOS 11
- 17. iOS 11拖放UIDocument
- 18. UIWebView DatePicker输入检测
- 19. 如何检测用户何时将手指放在UIWebView中的图像上?
- 20. 如何检测UIWebView内的YouTube视频播放按钮触摸?
- 21. WebPage可以检测它在IOS UIWebView中打开的时间吗?
- 22. 如何检测另一个应用是否在iOS 11中滑动运行?
- 23. 如何在ios的UIWebview中播放wmv文件
- 24. 检测缩放iOS上的缩放
- 25. 如何检测UIWebView何时在Swift中完全加载完成
- 26. 在XCode中检测UIWebView表单提交
- 27. 在UIWebView中检测文本hilight
- 28. 在UIWebView中检测ontouchend或onClick事件
- 29. 如何从iOS应用iOS 11测试版打开位置服务?
- 30. 如何在iOS 11中使用NEDNSProxyProvider
我认为,在移动设备中 - 1. Safari可能不允许拖动操作 - 2.拖动操作无法相互切换两个应用程序。请分享你曾经使用过移动设备的网页浏览器看过这个操作的任何参考文献 – Krunal
我正在尝试iPad Pro @Krunal –