第一个phoneGap和JqueryMobile的应用实例

今天用phonegap和jquerymobile结合做了一个小的应用,这个应用很简单,就是几个按钮调用设备操作而已,以前单纯用PhoneGap做应用很丑。后来明白了,PhoneGap是一种工具,而jquerymobile则是用来美化,看截图首页上有两个按钮,开始和退出,点击按钮时,页面跳转到下一个页面。这个页面上可以回到上一页,跳转到下一页,并且通过调用phoneGap,可以获取设备在x,y,z上的加速度。在第三页上,通过调用phoneGap实现对照相机的调用,以及从设备的图库中获取图像。在最后一页上,实现检查设备网络连接状态的检查工作。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta charset="utf-8">
    <title>Capture Photo</title>
  <script src="jquery-1.7.2.min.js"></script>
  <script src="jquery.mobile-1.1.0.min.js"> </script>
  <link rel="stylesheet" href="jquery.mobile-1.1.0.min.css"> 
    <script type="text/javascript" charset="utf-8" src="cordova-1.7.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    var pictureSource;   // picture source
    var destinationType; // sets the format of returned value 

    // Wait for Cordova to connect with the device
    //
    document.addEventListener("deviceready",onDeviceReady,false);

    // Cordova is ready to be used!
    //
    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;
    }
    function checkConnection() {
    var networkState = navigator.network.connection.type;

    var states = {};
    states[Connection.UNKNOWN]  = 'Unknown connection';
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI]     = 'WiFi connection';
    states[Connection.CELL_2G]  = 'Cell 2G connection';
    states[Connection.CELL_3G]  = 'Cell 3G connection';
    states[Connection.CELL_4G]  = 'Cell 4G connection';
    states[Connection.NONE]     = 'No network connection';

    alert('Connection type: ' + states[networkState]);
}
    function onSuccess(acceleration) {
        alert('Acceleration X: ' + acceleration.x + '\n' +
              'Acceleration Y: ' + acceleration.y + '\n' +
              'Acceleration Z: ' + acceleration.z + '\n' +
              'Timestamp: '      + acceleration.timestamp + '\n');
    }

    // onError: Failed to get the acceleration
    //
    function onError() {
        alert('onError!');
    }
    // Called when a photo is successfully retrieved
    //
    function onPhotoDataSuccess(imageData) {
      // Uncomment to view the base64 encoded image data
      // console.log(imageData);

      // Get image handle
      //
      var smallImage = document.getElementById('smallImage');

      // Unhide image elements
      //
      smallImage.style.display = 'block';

      // Show the captured photo
      // The inline CSS rules are used to resize the image
      //
      smallImage.src = "data:image/jpeg;base64," + imageData;
    }

    // Called when a photo is successfully retrieved
    //
    function onPhotoURISuccess(imageURI) {
      // Uncomment to view the image file URI 
      // console.log(imageURI);

      // Get image handle
      //
      var largeImage = document.getElementById('largeImage');

      // Unhide image elements
      //
      largeImage.style.display = 'block';

      // Show the captured photo
      // The inline CSS rules are used to resize the image
      //
      largeImage.src = imageURI;
    }

    // A button will call this function
    //
    function capturePhoto() {
      // Take picture using device camera and retrieve image as base64-encoded string
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
        destinationType: destinationType.DATA_URL });
    }

    // A button will call this function
    //
    function GetAcceleration()
    {
    navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
    }
    function capturePhotoEdit() {
      // Take picture using device camera, allow edit, and retrieve image as base64-encoded string  
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true,
        destinationType: destinationType.DATA_URL });
    }

    // A button will call this function
    //
    function getPhoto(source) {
      // Retrieve image file location from specified source
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
        destinationType: destinationType.FILE_URI,
        sourceType: source });
    }

    // Called if something bad happens.
    // 
    function onFail(message) {
      alert('Failed because: ' + message);
    }
    function Exit()
    {
    navigator.app.exitApp();
    }

    </script>
  </head>
  <body>
  <section id="homepage" data-role="page">
  <header data-role="header">
  <h1>Homepage</h1>
  </header>
  <div class="content" data-role="content">
  <p>This is a JqueryMoblie with PhoneGap example, click the button below operating</p></br>
  <a href="#secondpage" data-role="button">Start</a>
     <button data-role="button" οnclick="Exit();">Exit</button>
  </div>
  </section>
  <section id="secondpage" data-role="page">
  <header data-role="header">
  <h1>SecondPage</h1>
  </header>
  <div class="content" data-role="content">
  <p>On this page, you can obtain the acceleration of the mobile phone in the x, y, and z directions, click the button below to try it</p></br>
    <a href="#homepage" data-role="button">PreviosPage</a>
   <button   data-role="button" onclick = "GetAcceleration()">GetAcceleration</button>
   <a href="#thirdpage" data-role="button">NextPage</a>
      <button data-role="button" οnclick="Exit();">Exit</button>
</div>
</section>
  <section id="thirdpage" data-role="page">
  <header data-role="header">
  <h1>ThirdPage</h1>
  </header>
  <div class="content" data-role="content">
  <p>On this page, you can take a picture or you can get on the phone photos, 
  </br>the photos will be displayed on this page, click the button below to try it</p></br>
    <a href="#secondpage" data-role="button">PreviousPage</a>
    <button   data-role="button" οnclick="capturePhoto();">Capture Photo</button>
    <button  data-role="button" οnclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button>
<img style="display:none;width:260px;height:260px;" id="smallImage" src="" />
      <img style="display:none;" id="largeImage" src="" />
   <a href="#forthpage" data-role="button">NextPage</a>
      <button data-role="button" οnclick="Exit();">Exit</button>
</div>
</section>
 <section id="forthpage" data-role="page">
  <header data-role="header">
  <h1>Forthpage</h1>
  </header>
  <div class="content" data-role="content">
  <p>On this page, you can check the network status, click the button below to try it</p></br>
    <a href="#thirdpage" data-role="button">PreviousPage</a>
    <button  data-role="button" οnclick="checkConnection();">CheckConnection</button>
   <a href="#homepage" data-role="button">BacktoHomepage</a>
   <button data-role="button" οnclick="Exit();">Exit</button>
</div>
</section>
     </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值