`
fanfq
  • 浏览: 267756 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

phonegap-storage

阅读更多
phonegap 就不多做介绍了,在此你看到的文章的分类就略知其作用了。
本节介绍的phonegap的存贮的实现,比较奇怪的是我始终都没有找到其存储文件存放的目录在哪里,原本以为会在/data/data/app package/databases/ 其实不然,在stackoverflow,gmailgroup里面都提问了,尚未得到有效的答复。希望有经验的朋友能够在此留言告知于我,表示感谢!
其实就两个页面,实现CRUD的操作,so easy!
index.html
<!DOCTYPE html>
<html>
<head>
<title>Storage Example</title>

<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
	// 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 integer PRIMARY KEY autoincrement, title text,content text)');
			//tx.executeSql('INSERT INTO DEMO (title,content) VALUES ("First row","first content")');
			//tx.executeSql('INSERT INTO DEMO (title,content) VALUES ("Second row","second content")');
	}

	// 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;
		var div = "<table>";
		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).title);
			div += "<tr><td>" + i + "</td>" + "<td>" + results.rows.item(i).id
					+ "</td>" + "<td>" + results.rows.item(i).title + "</td>"
					+ "<td>" + results.rows.item(i).content + "</td>"
					+ "<td><a href='#' onclick='deletes("
					+ results.rows.item(i).id + ");'>delete</a></td></tr>";
		}
		div += "</table>";
		document.getElementById("div").innerHTML = div;
	}

	var index;

	function deletes(index_) {
		index = index_;
		var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
		db.transaction(deletes_, errorCB, successCB);
	}
	function deletes_(tx) {
		tx.executeSql('delete FROM DEMO where id = ' + index, [], querySuccess,
				errorCB);
	}

	// 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);

		console.log("Success processing SQL: ");
	}

	// Cordova is ready
	//
	function onDeviceReady() {
		var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
		db.transaction(populateDB, errorCB, successCB);
	}

	function display() {
		var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
		db.transaction(queryDB, errorCB);
	}

	function search() {
		var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
		db.transaction(search_, errorCB, querySuccess);
	}

	function search_(tx) {
		var key = document.getElementById("keywords").value;
		console.log("key: " + key);
		tx.executeSql("SELECT * FROM DEMO where title like '%" + key + "%'",
				[], querySuccess, errorCB);
	}
</script>
</head>
<body>
	<h1>Example</h1>
	Database


	[url=add.html]Add[/url]

	<input name="keywords" id="keywords" placeholder="search something">
	<input type="submit" onclick="search();" />

	<div id="div"></div>

</body>
</html>


add.html
<!DOCTYPE html>
<html>
  <head>
    <title>Storage Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for Cordova to load
    //

    function inster(){
    	
    	var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
        db.transaction(inster_, errorCB, successCB);
    }
    
    function inster_(tx){
    	var t = document.getElementById("title").value;
    	var c =  document.getElementById("content").value;
    	tx.executeSql("INSERT INTO DEMO (title,content) VALUES ('"+t+"','"+c+"')");
    }
    
    // Transaction error callback
    //
    function errorCB(err) {
        console.log("Error processing SQL: "+err.code);
    }

    // Transaction success callback
    //
    function successCB() {
        console.log("Success processing SQL: ");
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    Database - Add

    
    Title:
    <input type="text" id="title"/>
    Content:
    <input type="text" id="content"/>
    <input type="submit" id="submit" value="submit" onclick="inster();"/>
    
    
  </body>
</html>



代码较为简单就不多做介绍了,附件中含工程源码。遇到问题敬请留言。
0
2
分享到:
评论

相关推荐

    PhoneGap-拍照上传DEMO

    HTML5则是下一代超文本标记语言,它引入了许多新特性,如离线存储(Web Storage)、拖放功能(Drag and Drop)、媒体元素(Audio/Video)以及用于图形绘制的Canvas和矢量图形SVG等。对于移动应用来说,尤其重要的是...

    PhoneGap - API 中文说明

    PhoneGap - API 中文说明 Accelerometer 加速度计 Camera 相机 Capture 捕捉 Compass 指南针 Contacts 联系人 Device 设备 Events 活动 File 文件 Geolocation 地理位置 Media 媒体 Network 网络 Notification 通知...

    PhoneGap - API 中文说明.rar )

    PhoneGap - API 中文说明 Accelerometer 加速度计 Camera 相机 Capture 捕捉 Compass 指南针 Contacts 联系人 Device 设备 Events 活动 File 文件 Geolocation 地理位置 Media 媒体 Network 网络 Notification 通知...

    Cordova-PhoneGap-Babel-React-Hotloader-Webpack-Framework7-Firestore-FontAwesome:KitchensinkCordova-PhoneGap-Babel-React-Hotloader-Webpack-Framework7-Firestore-FontAwesome的样板

    科尔多瓦的厨房水槽/样板-PhoneGap-Babel-React-Hotloader-Webpack-Framework7-Firestore-FontAwesome 具有原生外观的即用型混合移动应用程序的模板。 预习 安卓 的iOS 工具类 参见下文 编译为iOS和Android应用 ...

    phonegap-调用

    &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt; ``` 3. **JavaScript接口**:在你的JavaScript代码中,你可以使用`navigator.camera`对象提供的方法来调用相机。例如,`...

    cordova-sqlite-storage-js:Javascript库可轻松使用cordova-sqlite-storage插件

    科尔多瓦-sqlite-storage-js Javascript库可轻松使用cordova-sqlite-storage插件 配置 var db_config = { name : 'your_db_name.db' , location : 'default' } ; 用法 db_query function success_callback ( ) {...

    phonegap-s3-upload:上传

    Amazon Simple Storage Service (S3) 是一种可扩展的云存储服务,可以用来存放和检索任何数量的数据,无论何时何地。S3 提供了高可用性和耐用性,并且支持多种数据安全措施,包括加密和访问控制策略。 **上传流程**...

    cordova-sqlite-storage:一个CordovaPhoneGap插件,用于通过HTML5Web SQL API在Android,iOS和Windows上打开和使用sqlite数据库

    适用于Cordova / PhoneGap的跨平台SQLite存储插件-cordova-sqlite-storage插件版本 具有基于HTML5 / 的本机SQLite组件,适用于以下平台: 浏览器 安卓 的iOS macOS(“ osx”平台) Windows 10(UWP)桌面和移动...

    phonegap-2.8.1

    5. **Web Workers和Web Storage**: 提高了多线程处理能力和数据存储能力,优化了移动应用的性能。 **CSS3** 1. **选择器增强**: CSS3引入了更强大的选择器,如伪类选择器`:hover`, `:active`, `:focus`等,以及新...

    使用指南:PhoneGap的CordovaWebView组件在Android原生项目中使用.

    &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt; &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt; &lt;uses-permission android:name="android....

    web-storage-cache.js

    和localstorage差不多,但是这个有过期时间,时间过期后会移除缓存的内容,在过期前关闭浏览器和页面都不会导致缓存内容被移除。

    PhoneGap开发环境搭建

    &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt; ``` 完成以上步骤后,您就已经成功创建了一个基本的PhoneGap Android项目。接下来可以通过Eclipse进行项目的编译、调试和发布工作。...

    PhoneGap demo

    1. **HTML5**:作为用户界面的基础,HTML5提供了许多增强的交互元素和数据存储功能,如离线存储(Web Storage)和本地数据库(Web SQL或IndexedDB),这些都是构建现代移动应用的关键。 2. **CSS3**:用于美化和...

    phonegap打开文档插件

    PhoneGap打开文档插件是移动应用开发中的一个重要组件,它允许开发者在PhoneGap应用程序中方便地查看和打开各种类型的文档。PhoneGap是一个基于HTML、CSS和JavaScript的框架,用于构建跨平台的原生移动应用。它利用...

    phonegap在线更新插件(android)

    3. **处理权限**:由于涉及到文件下载和安装,可能需要在AndroidManifest.xml中添加相应的权限声明,例如`INTERNET`和`WRITE_EXTERNAL_STORAGE`。 4. **处理Android 7.0+的安装限制**:Android 7.0引入了后台安装...

    PHONEGAP入门经典源码

    4. **本地存储**:PhoneGap提供了SQLite数据库和Web Storage等本地存储方式,用于在离线情况下保存数据。 5. **构建与调试**:源码可能还包括构建脚本,展示了如何使用PhoneGap CLI或PhoneGap Build服务将项目打包为...

    Phonegap_API_中文版

    5. **存储管理**:PhoneGap提供了Web Storage(localStorage和sessionStorage)以及SQLite数据库的支持,用于在本地存储应用数据。这些存储方式可以处理结构化的数据,且不会因浏览器关闭而丢失。 6. **通知与推送*...

    PhoneGap实例

    2. 资源管理:利用HTML5的本地存储机制(如Web Storage或IndexedDB)来保存数据,或者使用PhoneGap的File API进行文件操作。 3. 设备访问:通过PhoneGap的设备API,如accelerometer、camera、geolocation等,可以...

Global site tag (gtag.js) - Google Analytics