接口web |
HTML5chrome |
phonegap編程 |
差別canvas |
地理定位瀏覽器 geolocationsession |
單次定位:ide navigator.geolocation.getCurrentPosition(Success, [error],[options]);編碼 重複性定位:視頻 navigator.geolocation.watchPosition(Success, [error],[options]);對象
|
調用接口同左 |
兩者調用方法一致
在phonegap中定位時,會因爲設備差別,致使某些設備上沒法定位,須要藉助百度地圖SDK定位。 |
攝像頭 carema |
HTML5 的 The Media Capture(媒體捕捉) API 提供了對攝像頭的可編程訪問,用戶能夠直接用 getUserMedia得到攝像頭提供的視頻流 調用: navigator.getUserMedia(‘video’,success,error) (1)獲取視頻流:一個HTML5 的 Video 標籤,將從攝像頭得到的視頻做爲這個標籤的輸入來源。 Function success(videoStream){ viedo_ele.src=videoStream; } (2 )使用canvas繪製video標籤的內容, ctx.drawImage(video_element,0,0,cw,ch,0,0,vw,vh) (3)獲取圖片:將Canvas的數據轉換爲base64位編碼的PNG圖像 Var imgData=canvas.toDataURL(「image/png」); |
提供對設備默認攝像頭應用程序的訪問,圖片以base64編碼的字符串或圖片URI形式返回: navigator.camera.getPicture(Success, cameraError, [ cameraOptions ] );
經過cameraOptions參數所設定返回格式:默認返回base64編碼 destinationType:Camera.DestinationType.FILE_URI(返回URI) |
調用接口不同
HTML5經過訪問攝像頭的接口,使用video和canvas標籤,模擬拍照效果。目前僅Chrome和opera支持。
phonegap是直接調用原生的攝像頭。 |
方向變化 compass |
HTML5提供了DeviceOrientation 事件監聽有關設備的物理方向和移動信息。根據手機旋轉狀況肯定指南針旋轉角度 指南針的顯示用canvas繪製。
window.addEventListener("deviceorientation", update, false); Deviceorientation方向事件對象中包含設備先後旋轉、左右旋轉、沿Z軸旋轉等的角度。 (1)DeviceOrientationEvent.absolute 返回的是個bool值表示設備是否絕對支持方向定位 (2)DeviceOrientationEvent.alpha 表示設備沿z軸上的旋轉角度,範圍爲0~360。 (3)DeviceOrientationEvent.beta範圍爲-180~180。它描述的是設備由前向後旋轉的狀況。 (4)DeviceOrientationEvent.gamma範圍爲-90~90。它描述的是設備由左向右旋轉的狀況。 |
檢測設備方向或朝向,使用度做爲衡量單位,取值範圍從0度到359.99度。
navigator.compass.getCurrentHeading(Success,Error,Options);
在固定的時間間隔獲取羅盤朝向的角度變化: navigator.compass.watchHeading(Success,Error, [compassOptions]);
function Success(heading) { alert(heading.magneticHeading); }; |
調用的接口不同
HTML5提供的方向變化事件包含的信息更詳細。
Phonegap只提供了設備朝向 |
本地存儲 Storage |
HTML5中支持localStorage和sessionStorage兩種storage存儲方式,前者是持久性的數據存儲,後者是會話級別的數據存儲。 localStorage.setItem(key,value); localStorage.getItem(key); |
phonegap提供對W3C localStorage 接口的訪問,能夠使用鍵值對的方式存儲數據。 var storage= window.localStorage; storage.setItem(key,value) storage.getItem(key); |
兩者調用接口一致 |
文件系統 fileSystem |
HTML5提供了PERSISTENT(永久存儲)和TEMPORARY (臨時存儲)兩種存儲模式。 (1)獲取調用fs對象的方法 window.requestFileSystem=window.requestFileSystem || window.webkitRequestFileSystem; (2)請求fs對象 window.requestFileSystem(type,size,success,error); (3)經過fs對象獲取文件,利用FileReader、FileWriter讀寫文件: function success(fs){ //獲取目錄 fs.root.getDirectory(); // fs.root.getFile(); //獲取文件 } /*申請5MB臨時存儲空間*/ window.requestFileSystem(window.TEMPORARY,5*1024*1024,onInitFs,errorHandler); |
也提供兩種存儲模式,可是經過一個localFileSystem對象來指定存儲類型。
(1)請求一個filesystem對象:window.requestFileSystem(LocalFileSystem.PERSISTENT,0,onSuccess, onError); (2)經過fs獲取文件,利用 FileReader、FileWriter讀寫文件: function onSuccess(fs){ fs.root.getDirectory(); // fs.root.getFile(); }
|
兩者調用接口基本同樣。
只是前者請求filesystem對象的方法跟瀏覽器有關,目前只有chrome支持。
Phonegap中使用自身封裝的接口,與瀏覽器無關。 |