Uso de Canvas Signature pad que he creado en el emulador está funcionando bien, pero en el dispositivo Android dos pad de firma está llegando
Usando HTML5, Cordova 3.1, Canvas, Javascript Estoy haciendo una aplicación en la que con la ayuda de la lona he hecho un pad de firma que funciona bien en el emulador, pero cuando estoy tratando de ejecutar en el dispositivo de Android, a continuación, dos Pad firma viene por favor me ayude Qué error hice en la codificación
En HTML5: –
- Abrir imagen con el visor de imágenes predeterminado en Android
- El evento JavaScript touchend no se disparará en Android
- Eventos personalizados en React Native Componente nativo de la interfaz de usuario de Android
- Android - Cómo ejecutar la intención de JavaScript
- Android 2.2 Web View Windows se mueve hacia arriba cuando aparece Virtual Keyboard
<canvas id='newSignature'> </canvas>
En JS: –
var canvas = document.getElementById('newSignature'); var context = canvas.getContext("2d"); canvas.width = 276; canvas.height = 180; context.fillStyle = "#fff"; context.strokeStyle = "#444"; context.lineWidth = 1.5; context.lineCap = "round"; context.fillRect(0, 0, canvas.width, canvas.height); Add event listener for `click` events. canvas.addEventListener('click', function(event) { alert("hello can vas"); var disableSave = true; var pixels = []; var cpixels = []; var xyLast = {}; var xyAddLast = {}; var calculate = false; { function remove_event_listeners() { canvas.removeEventListener('mousemove', on_mousemove, false); canvas.removeEventListener('mouseup', on_mouseup, false); canvas.removeEventListener('touchmove', on_mousemove, false); canvas.removeEventListener('touchend', on_mouseup, false); document.body.removeEventListener('mouseup', on_mouseup, false); document.body.removeEventListener('touchend', on_mouseup, false); } function get_coords(e) { var x, y; if (e.changedTouches && e.changedTouches[0]) { var offsety = canvas.offsetTop || 0; var offsetx = canvas.offsetLeft || 0; x = e.changedTouches[0].pageX - offsetx; y = e.changedTouches[0].pageY - offsety; } else if (e.layerX || 0 == e.layerX) { x = e.layerX; y = e.layerY; } else if (e.offsetX || 0 == e.offsetX) { x = e.offsetX; y = e.offsetY; } return { x: x, y: y }; }; function on_mousedown(e) { e.preventDefault(); e.stopPropagation(); canvas.addEventListener('mouseup', on_mouseup, false); canvas.addEventListener('mousemove', on_mousemove, false); canvas.addEventListener('touchend', on_mouseup, false); canvas.addEventListener('touchmove', on_mousemove, false); document.body.addEventListener('mouseup', on_mouseup, false); document.body.addEventListener('touchend', on_mouseup, false); empty = false; var xy = get_coords(e); context.beginPath(); pixels.push('moveStart'); context.moveTo(xy.x, xy.y); pixels.push(xy.x, xy.y); xyLast = xy; }; function on_mousemove(e, finish) { e.preventDefault(); e.stopPropagation(); var xy = get_coords(e); var xyAdd = { x: (xyLast.x + xy.x) / 2, y: (xyLast.y + xy.y) / 2 }; if (calculate) { var xLast = (xyAddLast.x + xyLast.x + xyAdd.x) / 3; var yLast = (xyAddLast.y + xyLast.y + xyAdd.y) / 3; pixels.push(xLast, yLast); } else { calculate = true; } context.quadraticCurveTo(xyLast.x, xyLast.y, xyAdd.x, xyAdd.y); pixels.push(xyAdd.x, xyAdd.y); context.stroke(); context.beginPath(); context.moveTo(xyAdd.x, xyAdd.y); xyAddLast = xyAdd; xyLast = xy; }; function on_mouseup(e) { remove_event_listeners(); disableSave = false; context.stroke(); pixels.push('e'); calculate = false; }; } canvas.addEventListener('touchstart', on_mousedown, false); canvas.addEventListener('mousedown', on_mousedown, false); }, false);
- ¿Cómo puedo obtener puntos de interrupción (y ver números de línea de error) al depurar JavaScript en Android?
- JavaScript La geolocalización no funciona en todos los navegadores de Android: funciona en iOS y PC
- API de notificación en el navegador Chrome de Android
- Cómo obtener el tipo mime en Cordova getPicture
- ¿Cómo implementar carga más función en android usando phonegap?
- ¿Podría alguien de una vez por todas explicar por favor No puedo llamar a determinedVisibility () - nunca vi una conexión para el pid
- Agregar botón de actualización a la página de error - Webview
- Cómo eliminar el margen inbuilt en la vista web de Android con javascript
Como su pregunta que está trabajando en el lienzo desea capturar la firma del usuario mediante el evento touchmove. Para fines de firma puede utilizar este complemento https://github.com/thomasjbradley/signature-pad
Como quieres usar cordova y JQuery móvil …
Entonces usted tiene que cambiar una varible en el archivo de complemento
$.fn.signaturePad.defaults={ //drawIt : '.drawIt a' actula code remove anchor tag drawIt : '.drawIt' you can use where you want in any canvas };
- Aplicación no compatible con Nexus 5 en Google PlayStore
- Actualizaciones de ubicación continua en segundo plano