cordova入门到放弃?
Posted 79 months ago linux cordova android
安装androidsdk
设置JAVA_HOME环境变量,指定为JDK安装路径 设置ANDROID_HOME环境变量,指定为Android SDK安装路径 同时也建议你添加Android SDK的tools和platform-tools目录到你的PATH
~/.bash_profile
export ANDROID_HOME=/Development/android-sdk/
export PATH=${PATH}:/Development/android-sdk/platform-tools:/Development/android-sdk/tools
//运行$ source ~/.bash_profile
安装cordova
sudo npm install -g cordova
创建app项目
cordova create hello com.example.hello HelloWorld
添加平台
cordova platform add android --save
编译app
cordova build
部署虚拟机内的app(adb先链接虚拟机或者手机)
cordova emulate android
cordova run android
添加插件
cordova plugin search camera
换图标 config.xml
用尖括号包裹
icon src="res/ios/icon.png" platform="ios" width="57" height="57" density="mdpi"
储存数据(js向)
LocalStorage
ar storage = window.localStorage;
var value = storage.getItem(key); // 传递键的名字获取对应的值。
storage.setItem(key, value) // 传递键的名字和对应的值去添加或者更新这个键值对。
storage.removeItem(key) // 传递键的名字去从LocalStorage里删除这个键值对。
WebSQL
var db = window.openDatabase(name, version, displayName, estimatedSize);
- name (string): 数据库的唯一名称,会被存在磁盘当中。
- version (string): 数据库的版本。
- displayName (string): 数据库的让人容易懂的名字,会被系统用来向用户描述这个数据库。
- estimatedSize (number): 数据库的预期最大容量,字节为单位。当数据库容量增长的时候,可能会提示用户获取授权。如果你设置了一个合理的容量,以后的提示就会比较少。
IndexedDB
var db;
var databaseName = 'myDB';
var databaseVersion = 1;
var openRequest = window.indexedDB.open(databaseName, databaseVersion);
openRequest.onerror = function (event) {
console.log(openRequest.errorCode);
};
openRequest.onsuccess = function (event) {
// 数据库已经打开并初始化 - 我们进行的不错,可以继续了.
db = openRequest.result;
displayData();
};
openRequest.onupgradeneeded = function (event) {
// 一个新的数据库,或者一个新的版本号被传递给open方法调用。
var db = event.target.result;
db.onerror = function () {
console.log(db.errorCode);
};
// 创建一个存储对象。key是用来标识这个存储对象。
//keyPath参数定义了key存储的地方。如果keyPath指定了,那么这个存储对象只能包含JavaScript对象,
//而且每个对象必须有一个属性名字和keyPath相同(除非autoIncrement选项是true)。
var store = db.createObjectStore('customers', { keyPath: 'customerId' });
// 定义我们想要使用的索引。我们创建的存储对象不需要包含这些属性,它们只会出现在指定的索引中。
//
// 使用方式: store.createIndex(indexName, keyPath[, parameters]);
//
// All these values could have duplicates, so set unique to false
store.createIndex('firstName', 'firstName', { unique: false });
store.createIndex('lastName', 'lastName', { unique: false });
store.createIndex('street', 'street', { unique: false });
store.createIndex('city', 'city', { unique: false });
store.createIndex('zipCode', 'zipCode', { unique: false });
store.createIndex('country', 'country', { unique: false });
// 一旦store创建成功,就可以存储数据了。
store.transaction.oncomplete = function (event) {
// transaction方法获取到存储对象名字和索引的数组(或者一个单字符串去得到一个单独的存储对象),它们都在事务的作用域里。
// 事务是只读的,除非指定了readwrite选项。
//它返回了一个对象,这个对象提供了objectStore方法去访问transaction作用域里的对象。
var customerStore = db.transaction('customers', 'readwrite').objectStore('customers');
customers.forEach(function (customer) {
customerStore.add(customer);
});
};
};
function displayData() {
}
Cordova-sqlite-storage
//安装
cordova plugin add cordova-sqlite-storage --save
//实例化
var db = null;
document.addEventListener('deviceready', function() {
db = window.sqlitePlugin.openDatabase({name: 'demo.db', location: 'default'});
});
//使用标准事务 API 填充数据库:
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS DemoTable (name, score)');
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101]);
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202]);
}, function(error) {
console.log('Transaction ERROR: ' + error.message);
}, function() {
console.log('Populated database OK');
});
//使用标准事务 API 检查数据:
db.transaction(function(tx) {
tx.executeSql('SELECT count(*) AS mycount FROM DemoTable', [], function(tx, rs) {
console.log('Record count (expected to be 2): ' + rs.rows.item(0).mycount);
}, function(tx, error) {
console.log('SELECT error: ' + error.message);
});
});
//使用 SQL 批处理 API 填充数据库:
db.sqlBatch([
'CREATE TABLE IF NOT EXISTS DemoTable (name, score)',
[ 'INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101] ],
[ 'INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202] ],
], function() {
console.log('Populated database OK');
}, function(error) {
console.log('SQL batch ERROR: ' + error.message);
});