モバイルウェブミドルウェアphonegap 2(モバイル端末APIを呼び出す)
この記事では、phonegapでローカルAPIを呼び出すプラグインについて説明します.
一、どのようなプラグインがありますか.
Accelerometerデバイススクリーンジェスチャーセンサーをクリック(これがあれば重力誘導系のゲームを開発できる)
Camreaは設備カメラを呼び出して写真を採取する
Captureデバイスのメディア収集アプリケーションを使用してメディアファイルを呼び出す
Compassデバイス移動の方向を取得
Connectionネットワークの状況とセルラーネットワークの情報をすばやくチェック
Contactsデバイス連絡先関連アクション
デバイス情報取得
Events JavaScriptによるローカルアクティビティの取得
File JavaScriptでローカルファイルシステムを呼び出す
Geolocationにより、アプリケーションが地理情報にアクセスできます.
Globalizationの国際化
Mediaオーディオファイルの録画と再生
Notificationデバイスの視覚、音声、触覚フィードバック
Splashscreen起動画面
Storageキャプチャデバイスのローカルストレージオプション
二、プラグインの使用:
まず、呼び出しプラグインのhtmlにcordova-2.2.2.0を導入する.js(ダウンロードしたリソースのlibandroidディレクトリの下);
次に、2つの一般的なプラグインの使用を見てみましょう.
1、Fileローカルファイルの読み書き
ファイルの書き込み
ファイルの読み出し、ここで注意しなければならないのは、私たちが読み出したファイルはUTF-8符号化フォーマットが望ましいことです.そうしないと、中国語が文字化されません.
2、Storageのデータストレージ
phonegapのデータストレージには、localStorageとsqliteデータベースの2つの方法があります.
localStorageはhtml 5に付属するデータ格納方式で、phonegapがなくても使用できます.
主にsqliteデータベースの削除変更呼び出しについて説明します.
localStorageの簡単な使用例を説明します.(window.localStorageはjson構造に似たオブジェクトです)
sqliteの呼び出しを見てみましょう.
以上のコードでは、挿入とクエリーについて説明しています.変更と削除の方法は挿入に似ていますが、sql文が異なるので、sqliteのsql文を自分で補充してください.
次回予告:phonegapのプラグイン開発
これからどうなるか知りたいなら、次の分解を聞いてください.
一、どのようなプラグインがありますか.
Accelerometerデバイススクリーンジェスチャーセンサーをクリック(これがあれば重力誘導系のゲームを開発できる)
Camreaは設備カメラを呼び出して写真を採取する
Captureデバイスのメディア収集アプリケーションを使用してメディアファイルを呼び出す
Compassデバイス移動の方向を取得
Connectionネットワークの状況とセルラーネットワークの情報をすばやくチェック
Contactsデバイス連絡先関連アクション
デバイス情報取得
Events JavaScriptによるローカルアクティビティの取得
File JavaScriptでローカルファイルシステムを呼び出す
Geolocationにより、アプリケーションが地理情報にアクセスできます.
Globalizationの国際化
Mediaオーディオファイルの録画と再生
Notificationデバイスの視覚、音声、触覚フィードバック
Splashscreen起動画面
Storageキャプチャデバイスのローカルストレージオプション
二、プラグインの使用:
まず、呼び出しプラグインのhtmlにcordova-2.2.2.0を導入する.js(ダウンロードしたリソースのlibandroidディレクトリの下);
次に、2つの一般的なプラグインの使用を見てみましょう.
1、Fileローカルファイルの読み書き
ファイルの書き込み
- // Wait for Cordova to load
- document.addEventListener("deviceready", onDeviceReady, false);
-
- // Cordova is ready
- function onDeviceReady() {
- window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
- }
-
- function gotFS(fileSystem) {
- // , file:///mnt/sdcard
- fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
- }
-
- function gotFileEntry(fileEntry) {
- fileEntry.createWriter(gotFileWriter, fail);
- //fileEntry.createWriter(seek_ex, fail);
- }
-
- //seek
- function seek_ex(writer) {
- writer.onwrite = function(evt) {
- console.log("write success");
- };
- writer.seek(writer.length);
- writer.write("appended text");
- };
-
- function gotFileWriter(writer) {
- writer.onwriteend = function(evt) {
- console.log("contents of file now 'some sample text'");
- writer.truncate(21); // 21
- writer.onwriteend = function(evt) {
- console.log("contents of file now 'some sample'");
- };
- };
- writer.write("some sample text ");//
- }
-
- function fail(error) {
- console.log(error.code);
- }
ファイルの読み出し、ここで注意しなければならないのは、私たちが読み出したファイルはUTF-8符号化フォーマットが望ましいことです.そうしないと、中国語が文字化されません.
- // Wait for Cordova to load
- function onLoad() {
- document.addEventListener("deviceready", onDeviceReady, false);
- }
-
- // Cordova is ready
- function onDeviceReady() {
- window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
- }
-
- function gotFS(fileSystem) {
- fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
- }
-
- function gotFileEntry(fileEntry) {
- fileEntry.file(gotFile, fail);
- }
-
- function gotFile(file){
- readAsText(file);
- }
-
- function readAsText(file) {
- var reader = new FileReader();
- reader.onloadend = function(evt) {
- console.log("Read as text");
- $("#contents").append("<div>Read as text</div>");
- console.log(evt.target.result);
- $("#contents").append("<div>"+evt.target.result+"</div>");
- };
- reader.readAsText(file);
- }
-
- function fail(evt) {
- console.log(evt.target.error.code);
- }
2、Storageのデータストレージ
phonegapのデータストレージには、localStorageとsqliteデータベースの2つの方法があります.
localStorageはhtml 5に付属するデータ格納方式で、phonegapがなくても使用できます.
主にsqliteデータベースの削除変更呼び出しについて説明します.
localStorageの簡単な使用例を説明します.(window.localStorageはjson構造に似たオブジェクトです)
- window.localStorage.setItem("key", "value");
- var keyname = window.localStorage.key(i);
- // keyname is now equal to "key"
- var value = window.localStorage.getItem("key");
- // value is now equal to "value"
- window.localStorage.removeItem("key");
- window.localStorage.setItem("key2", "value2");
- window.localStorage.clear();
sqliteの呼び出しを見てみましょう.
- // Wait for Cordova to load
- //
- document.addEventListener("deviceready", onDeviceReady, false);
-
- // Populate the database
- // ,
- function populateDB(tx) {
- tx.executeSql('DROP TABLE IF EXISTS DEMO');
- tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
- tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
- tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
- }
-
- // Query the database
- // ,
- function queryDB(tx) {
- tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
- }
-
- // Query the success callback
- //
- function querySuccess(tx, results) {
- var len = results.rows.length;
- console.log("DEMO table: " + len + " rows found.");
- for (var i=0; i<len; i++){
- console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i).data);
- $('#database').append("<tr><td class='id'>"+results.rows.item(i).id+"</td><td class='data'>"+results.rows.item(i).data+"</td></tr>");
- }
- }
-
- // Transaction error callback
- //
- function errorCB(err) {
- console.log("Error processing SQL: "+err.code);
- }
-
- // Transaction success callback
- //
- function successCB() {
- var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
- db.transaction(queryDB, errorCB);
- }
-
- // Cordova is ready
- //
- function onDeviceReady() {
- var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
- db.transaction(populateDB, errorCB, successCB);
- }
以上のコードでは、挿入とクエリーについて説明しています.変更と削除の方法は挿入に似ていますが、sql文が異なるので、sqliteのsql文を自分で補充してください.
次回予告:phonegapのプラグイン開発
これからどうなるか知りたいなら、次の分解を聞いてください.