Cocoa WebView和HTML5拖放
我的同胞们——我在这里需要帮助。我确信这很简单,但我只是没有抓住要点。所以请帮忙 场景:Cocoa WebView和HTML5拖放,html,cocoa,webview,drag-and-drop,gmail,Html,Cocoa,Webview,Drag And Drop,Gmail,我的同胞们——我在这里需要帮助。我确信这很简单,但我只是没有抓住要点。所以请帮忙 场景: 在Mac OS X 10.7或更高版本上,我有一个webview作为浏览器。在那个网络视图中,我导航到Gmail。在Gmail中,我撰写一条消息,然后将一个或多个文件拖放到撰写框中 实际结果: 粘贴板具有NSURL对象,webview只需获取绝对字符串值并将其粘贴到合成的消息体中。对于其他编辑区域,如搜索栏,这种行为是可以接受的 所需结果: 当鼠标滑过时,拖动会触发HTML5,拖放会触发适当的javascr
在Mac OS X 10.7或更高版本上,我有一个webview作为浏览器。在那个网络视图中,我导航到Gmail。在Gmail中,我撰写一条消息,然后将一个或多个文件拖放到撰写框中 实际结果:
粘贴板具有NSURL对象,webview只需获取绝对字符串值并将其粘贴到合成的消息体中。对于其他编辑区域,如搜索栏,这种行为是可以接受的 所需结果:
当鼠标滑过时,拖动会触发HTML5,拖放会触发适当的javascript来上传文件。这种行为与FireFox、Safari和OmniWeb的表现是一致的 我如何获得相同的一致性行为/我需要实现什么 到目前为止我所尝试的:
- 使用WebView编辑委托,我尝试替换DOMRange中的标记
- 我将WebView子类化以覆盖PerformDraging:并修改DragingSource粘贴板
- 使用WebView首选项专用方法打开LocalStorage
p.S.我已经尝试了很多东西,我不想用迄今为止我尝试过的无用代码片段把这个问题弄得一团糟。然而,如果问题解决了,我会把我的结果公布给所有其他人。男孩,我觉得自己很傻。解决办法很简单,但并不明显 答案是webview的用户代理字符串 这里是一个有用信息的链接。 我建议您对useragent字符串进行分析,并确保其符合要求 举个例子:
Mozilla/5.0(Macintosh;英特尔Mac OS X 10_8_2)AppleWebKit/xxx.X.X(KHTML,如Gecko)MyApp/X.X.XSafari/xxx.X.X 注意:xxx.x.x是应用套件版本(我不会详细介绍) 修复程序是“Safari”末尾的标识符。 其他人的工作方式包括Firefox
快乐编码!真的希望这能帮助别人。我可以确认这个解决方案,因为我刚刚自己实现了它。我必须说,这很奇怪。你知道为什么这真的有效吗?