这次来看一下怎么把上次的HTML5画图板使用PhoneGap移植到Andriod上去。经过上一篇的PhoneGap环境的搭建,很轻松的就把一个HTML5的web应用移植到了Andriod上去,可以看出PhoneGap的强大。
1.添加自定义的JavaScript文件index.js
在www文件夹下添加js文件夹,在js文件夹下添加index.js
这里我重构了上一次的画板的JavaScript文件,不过代码的关键点是全部一样的。我只不过是按照面向对象的方式重构了一下代码。正好学习JavaScript怎么实现一个类,怎么调用方法等,挺有意思的。
function App() { var _this=this; _this.initialize=function() { //注册设备初始化完成事件 document.addEventListener("deviceready", onDeviceReady, false); } var onDeviceReady=function() { var can = new Can(); can.bindEvents();//绑定事件 } } function Can () { var _this=this; var lastX;//最后一次触摸的x坐标 var lastY;//最后一次触摸的y坐标 var canvas = document.getElementById("canvas"); var context =canvas.getContext("2d"); var init=function() { lastX=0; lastY=0; //全屏canvas canvas.width=window.screen.width; canvas.height=window.screen.height; context.lineWidth=10;//画笔粗细 context.strokeStyle="#FF0000";//画笔颜色 }; //绑定事件 _this.bindEvents = function() { try { //注册监听 canvas.addEventListener('touchstart', onTouchStart, false); canvas.addEventListener('touchmove', onTouchMove, false); } catch(err) { alert(err.message); } }; //触摸开始 var onTouchStart=function() { try { event.preventDefault(); lastX=event.touches[0].clientX; lastY=event.touches[0].clientY; //画点 drawRound(lastX,lastY); } catch(err) { alert(err.message); } }; //触摸移动 var onTouchMove=function() { try { event.preventDefault(); //画线 drawLine(lastX,lastY,event.touches[0].clientX,event.touches[0].clientY); lastX=event.touches[0].clientX; lastY=event.touches[0].clientY; } catch(err) { alert( err.message); } }; //画圆 var drawRound = function (x,y) { try { context.fillStyle="#FF0000"; context.beginPath(); context.arc(x,y,5,0,Math.PI*2,true); context.closePath(); context.fill(); } catch(err) { alert(err.message); } }; //画线 var drawLine = function (startX,startY,endX,endY) { try { context.beginPath(); context.lineCap="round"; context.moveTo(startX,startY); context.lineTo(endX,endY); context.stroke(); } catch(err) { alert(err.message); } }; init(); } ;
2.修改index.html
这个html代码跟上次的web应用完全一样。只添加了对App类的初始化代码。
<!doctype html> <html> <head> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <title>HTML5Paint</title> <script src="http://debug.phonegap.com/target/target-script-min.js#6CFB7EA06AB04AFBB33FD97AE40691C5"></script> <script type="text/javascript" src="cordova-2.6.0.js" charset="utf-8"></script> <script type="text/javascript" src="js/index.js" charset="utf-8"></script> <script type="text/javascript"> try { var app=new App(); app.initialize();//初始化 } catch(err) { alert(err.message); } </script> </head> <body> <canvas id="canvas" ></canvas> </body> </html>
3.在Andriod上的效果
这次移植过程可以看到是相当的轻松,几乎是原封不动的就把一个web用移植到了Andriod上去。所花费的成本真的很小很小,phoneGap真的是个很有前途的东西。