为什么纸张.js路径创建在 iOS 设备上不起作用
Why doesn't paper.js path creation work on iOS devices?
** 有关此问题的当前解决方案,请参阅编辑 2。
我有一个有点晦涩的问题,谷歌和搜索StackOverflow还没有解决。Paper.js无法通过iOS工作。
目前,我正在构建一个白板绘图网络应用程序,该应用程序利用纸张.js用于绘图功能。它在Chrome,FireFox和Safari的桌面上运行良好。在Android设备上,它工作正常,但非常滞后。在iOS设备上使用该应用程序时会出现此问题。
由于某种原因,我的应用程序在通过移动 Safari 或移动 Chrome 在 iOS 上使用时无法创建路径。iOS 上的行为只是一个无响应的画布。
我目前无法访问可用于远程调试的设备,因此无法收集任何有用的调试数据。
用于测试的 Web 应用链接。http://alexpersian.github.io/html/whiteboard.html
绘图中涉及的 paperscript 的代码片段。
var myPath;
function onMouseDown(event) {
myPath = new Path();
myPath.add(event.point);
myPath.strokeColor = WBAPP.penColor; // WBAPP is from main Javascript
myPath.strokeWidth = WBAPP.penStroke;
myPath.strokeCap = 'round';
}
function onMouseDrag(event) {
myPath.add(event.point);
}
function onMouseUp(event) {
myPath.simplify();
}
编辑:我已经完成了一些进一步的测试,发现它适用于运行iOS 7的设备,但不适用于iOS 8。我很好奇iOS 8是否有限制touchEvents网络交互的变化。
编辑2:我能够通过添加此代码片段来解决此问题。
document.addEventListener('touchmove', function(event) {
event.preventDefault();
}, false);
这可以防止 iOS 8 上的默认触摸操作,这似乎是滚动/平移操作,因为它会干扰 paper.js 中的 onMouseDrag 事件。
论文.js共同创作者Jürg Lehni正在研究是否应该将其包含在图书馆本身中。在此之前,此代码段应该会有所帮助。
可能需要实现可以使用的触摸事件http://labs.rampinteractive.co.uk/touchSwipe/demos/这样做或http://www.homeandlearn.co.uk/JS/html5_canvas_touch_events.html
- jQuery ContextMenu事件在IOS 8.2中不起作用
- Javascript touchend(滚动)事件在ios 4中的UIWebView中不起作用
- Ajax 调用在 IOS 中的用户交互之前不起作用
- window.open()在使用phone gap的iOS应用程序上不起作用
- Skrollr在IOS中不起作用,尽管i'We用Skrollr body包裹身体
- 删除类在 iOS 上不起作用
- Cordova iframe在iOS Safari中工作,但在Android中不起作用
- IOS Cordova/Phonegap 离线视频源标签不起作用
- <表单目标=“_blank”>在 iOS 7.0.3 中不起作用
- Jquery 函数在 ios 设备上不起作用
- 在 iFrame 中滚动事件侦听器在 iOS 上不起作用
- Vimeo 播放器 JS API 在 iOS 中不起作用
- 清除键盘打开时在iOS / iPad中不起作用的所有文本图标
- HTML
- 基于宽度计算的表格列显示和隐藏在 Safari IOS 设备中不起作用
- stringByEvaluatingJavaScriptFromString 在 iOS 7 中不起作用
- Ios webview调用javascript函数将不起作用
- 使用 ATTR 在 iOS 5 上不起作用更改 IMG 源
- Cordova iOS Javascript不起作用
- window.scroll到在iOS chrome中不起作用