偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

PhoneGap+jQuery Mobile打造本地化Web App

移動開發(fā)
我們沒必要學(xué)習(xí)苦行僧那樣,用記事本來打代碼.目前而言呢,PhoneGap的IDE工具最好的當(dāng)然是Dreamweaver CS 5.5.不過,我這里使用Eclipse作為我的開發(fā)IDE,因為之前使用過Dreamweaver CS 5.5 ,這次就換個IDE工具.

Eclipse 的配置

1,一站式新建項目 phonegap + jqm

http://svn.codespot.com/a/eclipselabs.org/mobile-web-development-with-phonegap/tags/r1.2/download/

這個插件還是很給力的,已經(jīng)支持默認(rèn)支持最新版本的phonegap,jqm,sencha

安裝完以后選擇這個圖標(biāo)

20120210200731417.png

2,選擇要建何種類型的phoneGap (1),默認(rèn)已經(jīng)支持直接創(chuàng)建最新版本的phoneGap

(2),這個插件支持兩大移動js框架jqm & Sencha Touch,當(dāng)然..這兩個框架只能二選一了,你不選也行…

(3),我這里選擇我最為熟悉的jQm框架,默認(rèn)已經(jīng)支持最新版本了

201202102007388669.png

3,接著,創(chuàng)建android項目即可

201202102007472134.png

接下來就不啰嗦了…

完成以后:項目結(jié)構(gòu),activity都已經(jīng)寫好的了..

201202102007578981.png

代碼也已經(jīng)寫好了.

201202102008107859.png

注意:新建完以后,可能androidmainifest會報錯,你把報錯的那行代碼刪掉即可,你也可以根據(jù)那個代碼要求找一個支持xlarge包的android版本(4.0吧)(貌似2.2沒有這玩意),我這里省事直接刪掉算了…

201202102008139826.png

自帶例子簡單介紹

在新建一個page,想使用插件幫你打包好的API你需要以下步驟

1,準(zhǔn)備JS文件,滑輪到index.html文件最后幾行;

//這個JS是必須的,調(diào)用的是設(shè)備的初始化//以下API自己按照自己的喜好調(diào)用和修改吧

2,在body上調(diào)用init()方法,具體使用參見device.js.

3,順便你寫了…

例子演示

感覺,這個跟這個jqm一起的例子,個人感覺比官方那個好很多…截個圖,結(jié)束吧…

201202102008219571.png

#p#

前言

上一章中,我們討論了環(huán)境的配置,這本章中我們,寫一個小模塊來貫通學(xué)習(xí),phonegap對攝像頭的調(diào)用,已經(jīng)phonegap對于拍下來的照片的處理,已經(jīng),使用本地數(shù)據(jù)庫保存我們的數(shù)據(jù),讓在程序重新運行的時候能夠保留我們的結(jié)果.先說明一下,為了,減少工作量,很多地方由于,官方文檔已經(jīng)很詳細(xì)了我就難得在描述了,如果有些地方,沒有而官方文檔也沒有的話,可以來問我...

例子設(shè)計

我們一般注冊都有一個,上傳圖像的模塊,以前,用電腦注冊的話,這個頭像就比較麻煩了,不過,我們用手機的話就基本沒這個問題了,這個例子就是,使用phonegap 調(diào)用攝像頭拍下我們的頭像,上傳到服務(wù)器,然后,也保存到本地里面,方便加載.

原型設(shè)計:

顯示用的主頁

201202141443568791.png

調(diào)用拍照的頁面

201202141444022450.png

為了,突顯出我們用jqm的好處的,增加一個swip事件來控制,頁面的切換

201202141444075519.png

代碼編寫

1,寫個模板,方便,我們以后的代碼的重用

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.     <meta charset="UTF-8"> 
  5.     <!--自適應(yīng)界面,如果出現(xiàn),在某些設(shè)備出現(xiàn)界面偏小的話,檢查一下有沒有加入這句 --> 
  6.     <meta http-equiv="Content-type" name="viewport" 
  7.           content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width"> 
  8.     <!--樣式--> 
  9.     <link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.0.1.min.css" /> 
  10.     <!--end--> 
  11.     <!--導(dǎo)入的js框架--> 
  12.     <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script> 
  13.     <script src="jquery.mobile/jquery-1.6.4.min"></script> 
  14.     <script src="jquery.mobile/jquery.mobile-1.0.1.min.js"></script> 
  15.     <!--end--> 
  16.     <!--自己寫的js--> 
  17.     <script type="text/javascript"> 
  18.  
  19.  
  20.     </script> 
  21.     <!--end--> 
  22. </head> 
  23. <body onload="init();"> 
  24. <div data-role="page" id="home"> 
  25.     <div data-role="header"> 
  26.         <h1>Hello,World</h1> 
  27.     </div> 
  28.     <div data-role="content" id="content"> 
  29.         <h1>content</h1> 
  30.     </div> 
  31.     <div data-role="footer"> 
  32.         <h1>footer</h1> 
  33.     </div> 
  34. </div> 
  35.  
  36. <!--import custom library --> 
  37. <script type="text/javascript" charset="utf-8" src="apis/camera.js"></script> 
  38. <script type="text/javascript" charset="utf-8" src="apis/device.js"></script> 
  39. <script type="text/javascript" charset="utf-8" src="apis/storage.js"></script> 
  40. <!--end--> 
  41. </body> 
  42. </html> 

2,模板寫好了,就開始我們實際代碼的編寫吧.

1,首先,編寫我們的device.js文件進(jìn)行對應(yīng)用的初始化工作

  1. function init() { 
  2. document.addEventListener("deviceready", onDeviceReady, true); 

2,然后接著寫初始化用干的事情

  1. var onDeviceReady = function() { 
  2.     console.log("deviceready event fired"); 
  3.       
  4. // api-camera  Photo URI 
  5.     pictureSource=navigator.camera.PictureSourceType; 
  6.     destinationType=navigator.camera.DestinationType; 
  7.     //這里是初始化主頁,如果,已經(jīng)有頭像的話,就加載 
  8.     var saveImage = kget("image"); 
  9.     if(saveImage){ 
  10.          //console.log("have image"+saveImage); 
  11.           var cameraImage = document.getElementById('cameraImage'); 
  12.           cameraImage.style.visibility = 'visible'
  13.           cameraImage.src = "data:image/jpeg;base64," + saveImage; 
  14.            
  15.     } 
  16.     //系統(tǒng)的事件,按需求實現(xiàn)自己的回調(diào)方法,這里就默認(rèn)了.. 
  17.     document.addEventListener("searchbutton", onSearchKeyDown, false);   
  18.     document.addEventListener("menubutton", onMenuButtonDown, false); 
  19.     document.addEventListener("pause", onEventFired, false); 
  20.     document.addEventListener("resume", onEventFired, false); 
  21.     document.addEventListener("online", onEventFired, false); 
  22.     document.addEventListener("offline", onEventFired, false); 
  23.     document.addEventListener("backbutton", onEventFired, false); 
  24.     document.addEventListener("batterycritical", onEventFired, false); 
  25.     document.addEventListener("batterylow", onEventFired, false); 
  26.     document.addEventListener("batterystatus", onEventFired, false); 
  27.     document.addEventListener("startcallbutton", onEventFired, false); 
  28.     document.addEventListener("endcallbutton", onEventFired, false); 
  29.     document.addEventListener("volumedownbutton", onEventFired, false); 
  30.     document.addEventListener("volumeupbutton", onEventFired, false); 
  31. }; 

這樣我們的devices.js就簡單的寫完了.

3,寫UI界面,這里也很簡單

  1. <body> 
  2.         <div data-role="page" id="home"> 
  3.             <div data-role="header"> 
  4.                 <h1>個人信息</h1> 
  5.                 <a href="#setting" data-icon="home" id="intro" class="ui-btn-right">設(shè)置</a> 
  6.             </div> 
  7.             <div data-role="content" id="homeContent"> 
  8.                 <p>頭像</p> 
  9.                 <img id="cameraImage" src="" /> 
  10.                 <!--這一塊的動態(tài)實現(xiàn)你會圖片的讀取和存儲,這個就很簡單了..這里就不做介紹了..--> 
  11.                 <p>名字:阿柴</p> 
  12.                 <p>聯(lián)系方式:xxxxx</p> 
  13.             </div> 
  14.         </div> 
  15.         <div data-role="page" id="setting"> 
  16.             <div data-role="header"> 
  17.                 <h1>頭像設(shè)置</h1> 
  18.             </div> 
  19.             <div data-role="settingContent"> 
  20.                 <p>頭像</p> 
  21.                 <img id="settingImage" src="" /> 
  22.                 <div class="ui-grid-a"> 
  23.                    <div class="ui-block-a"><div  data-role="button" id="takePhoto">take photo</div></div> 
  24.                   <div class="ui-block-b">  <div  data-role="button"  id="upload">upload</div></div> 
  25.                 </div> 
  26.                  
  27.             </div> 
  28.         </div> 
  29.         <script type="text/javascript" charset="utf-8" src="apis/camera.js"></script> 
  30.         <script type="text/javascript" charset="utf-8" src="apis/device.js"></script> 
  31.         <script type="text/javascript" charset="utf-8" src="apis/storage.js"></script> 
  32.     </body> 

上面就是頁面的代碼,就兩個DIV的page,學(xué)過,jqm的朋友應(yīng)該對此毫無壓力了...

4,開始寫點jqm的事件js,寫在模板那個head,自己的那個塊里面

  1. <script type="text/javascript"> 
  2.             //在頁面初始化的時候,利用phonegap初始化我們的應(yīng)用 
  3.             $('body').live("pageinit",function(){ 
  4.                init(); 
  5.             }); 
  6.             //為頁面添加swip 事件 
  7.             $("#home").live("pageinit",function(){ 
  8.                 //當(dāng)我們向左滑動的時候,進(jìn)入setting頁面 
  9.                 $('#homeContent').bind("swipeleft",function(){ 
  10.                   $.mobile.changePage('#setting', { transition: "fade"}); 
  11.                 }); 
  12.  
  13.             }); 
  14.             $('#setting').live("pageinit",function(){ 
  15.                 //顯示頭像圖片 
  16.                 var saveImage = kget("image"); 
  17.                 if(saveImage){ 
  18.                     //console.log("have image"+saveImage); 
  19.                     var cameraImage = document.getElementById('settingImage'); 
  20.                     cameraImage.style.visibility = 'visible'
  21.                     cameraImage.src = "data:image/jpeg;base64," + saveImage; 
  22.  
  23.                 } 
  24.                 //當(dāng)我們向右滑動的時候,回到主頁 
  25.                 $('#settingContent').bind("swiperight",function(){ 
  26.                     $.mobile.changePage('#home',{ transition: "fade"}); 
  27.                 }); 
  28.                 //進(jìn)行拍照 
  29.                 $('#takePhoto').bind("tap",function(){ 
  30.                     take_pic(); 
  31.                 }); 
  32.             }); 
  33.  
  34.         </script> 

這塊代碼的就要有一點熟悉jqm的人寫好了,有啥不懂的先看一下jqm的官方文檔吧...

5,寫了這么久,都沒怎么用到phonegap,接下來就是phonegap大展身手的時刻到了..

phonegap的照片類型

還記得我們在devices.js定義的兩個變量嗎?

  1. //這個是設(shè)置圖片是調(diào)用攝像頭還是,本機相冊,默認(rèn)是調(diào)用攝像頭 
  2. //更多參見官方文檔 
  3. pictureSource=navigator.camera.PictureSourceType; 
  4. //這個是,當(dāng)phonegap 獲取圖片的時候,我們希望獲取的是路徑?還是 
  5. //給予base64編碼的圖像格式 
  6. destinationType=navigator.camera.DestinationType; 

以上就是等下,可能要用到的參數(shù)介紹

新建一個camera.js,

  1. function take_pic() { 
  2.     navigator.camera.getPicture(onPhotoDataSuccess, function(ex) { 
  3.         alert("Camera Error!"); 
  4.     }, { 
  5.     //這里的更多設(shè)置參數(shù)參見官方文檔 
  6.         quality : 50, 
  7.     targetWidth: 320, 
  8.     targetHeight: 240, 
  9.     //用data_url,而不用file_url的原因是,file_url在不同平臺有差異 
  10.     //不好編寫,而用data_url就可以不考慮這個,加上,拍張圖片,不要太好的話,就幾十k存到數(shù)據(jù)庫里面也沒多慢.. 
  11.     destinationType:destinationType.DATA_URL 
  12.         }); 
  13. function onPhotoDataSuccess(imageData) { 
  14.     console.log("* * * onPhotoDataSuccess"); 
  15.     var cameraImage = document.getElementById('cameraImage'); 
  16.     cameraImage.style.visibility = 'visible'
  17.     //把圖片存進(jìn)數(shù)據(jù)庫里面 
  18.     kset("image",imageData); 
  19.    cameraImage.src = "data:image/jpeg;base64," + imageData; 
  20.      

接下來,新建一個storage.js,用來簡單封裝storage的api

  1. function kset(key, value){ 
  2.     console.log("key"+key+"value"+value); 
  3.     window.localStorage.setItem(key, value); 
  4.  
  5. function kget(key){ 
  6.     console.log(key); 
  7.     return window.localStorage.getItem(key); 
  8.  
  9. function kremove(key){ 
  10.     window.localStorage.removeItem(key); 
  11.  
  12. function kclear(){ 
  13.     window.localStorage.clear(); 
  14.  
  15. //測試更新方法 
  16. function kupdate(key,value){ 
  17.     window.localStorage.removeItem(key); 
  18.     window.localStorage.setItem(key, value); 

以上就是這次的內(nèi)容了.

責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2012-05-13 13:15:54

IOS

2012-05-14 17:10:50

iOS

2009-05-11 09:15:20

MozillaPrism瀏覽器

2013-11-12 10:15:45

App翻譯本地化

2011-05-25 10:13:09

WordPressJavaScript

2011-05-30 17:11:08

測試策略

2012-06-08 10:48:31

商務(wù)社交

2023-09-26 18:16:57

2009-05-11 09:40:10

PrismMozilla本地化

2011-05-26 17:28:48

軟件本地化測試

2014-06-19 10:26:15

Mobile AppWeb App

2013-08-07 15:03:26

2013-03-27 09:50:53

HTML5游戲Android開發(fā)

2011-09-05 14:42:01

PhoneGap框架

2022-09-21 11:51:26

模塊化應(yīng)用

2025-02-21 15:56:42

DeepSeekRAGAI

2017-11-30 14:44:41

語言代碼文件

2010-03-09 09:33:04

Windows Emb

2020-09-21 08:34:28

數(shù)據(jù)中心

2011-06-08 17:07:55

本地化測試
點贊
收藏

51CTO技術(shù)棧公眾號