2013-03-08 217 views
1

我的同伴社区 - 我在这里需要一些帮助。我确定这很简单,但我错过了这个标记。所以请帮助。可可WebView和HTML5拖放

场景:
在Mac OS X 10.7或更高,我有一个网页视图的浏览器。在该webview中,我导航到Gmail。在Gmail中撰写邮件,然后将一个或多个文件拖放到撰写框中。

实际结果:
该纸板具有NSURL对象(一个或多个)和web视图简单地取绝对值字符串值并将其粘贴到编写的消息体。对于其他编辑区域,如搜索栏等,这种行为被接受。

期望的结果:
期望的是,拖动鼠标悬停时和下降将触发正确的JavaScript上传的文件触发HTML5。这种行为与FireFox,Safari和OmniWeb的执行方式一致。

我该如何获得相同的一致行为/我需要实现什么?

我迄今为止尝试:

  • 使用的WebView编辑代表我试图取代在DOMRange
  • 标记我子类的WebView覆盖performDragging:和修改DraggingSource粘贴板
  • 使用WebView偏好设置私有方法打开LocalStorage

注意:该应用将被沙盒化,目前没有代码签名。

那么我错过了什么,或者更好,我从哪里开始和结束?

P.S.我已经尝试了很多东西,我不想用迄今为止尝试过的无用的代码片段来混淆这个问题。但是,如果解决了,我会将所有其他结果发布。

回答

2

男孩我觉得很傻。解决方案很简单,但并不明显。

答案是这是webview的用户代理字符串。

以下是有用信息的链接。 http://www.useragentstring.com/

我建议你把你的useragent字符串分析并确保它符合。

采取下面的例子:
的Mozilla/5.0(Macintosh上;英特尔的Mac OS X 10_8_2)为AppleWebKit/XXX.XX(KHTML,例如Gecko)MyApp的/ XXX 的Safari /xxx.xx

注:'xxx.xx'是应用套件版本(我不会详细介绍这个)。

解决方法是在结束 'Safari浏览器' 有标识 其他工作,如火狐

编码愉快!真的希望这可以帮助别人。

+0

我可以证实这个解决方案,因为我自己实现了它。我必须说,这很奇怪。你有什么想法,为什么这实际上有效? – 2014-05-21 13:27:50