phonegap與H5中的接口對比

 

 

接口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中使用自身封裝的接口,與瀏覽器無關。

相關文章
相關標籤/搜索