码迷,mamicode.com
首页 > 其他好文 > 详细

ionic项目打包好Xcode工程,模拟器运行各种沙盒缓存目录

时间:2017-07-04 14:50:58      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:ica   call   try   uil   efault   lap   tab   int   ppi   

用ionic开发好的app,build好iOS端可用的Xcode工程,然后用模拟器跑起来。研究一下js写的代码做本地持久化时,不同类型的文件都放在那里了。

 

技术分享

cordova-plugin-sqliteStorage插件创建的数据库的在沙盒中文件位置,默认使用参数default。

/Users/userName/Library/Developer/CoreSimulator/Devices/udid/data/Containers/Data/Application/9609D07D-0618-4ADB-8A07-CC46D898EC09/Library/dabaseName.db

技术分享
  1 angular.module(‘starter.eamDB‘, [])
  2   .factory("myDB", function ($q, $cordovaSQLite, $ionicPlatform) {
  3     var db;
  4     var is_debug = false;
  5     return {
  6       openDB: function (dbname, background, func) {
  7         if (window.cordova) {
  8           $ionicPlatform.ready(function () {
  9             var options = {name: dbname, location: ‘default‘};
 10             if (typeof background != ‘function‘) {
 11               db = $cordovaSQLite.openDB(options, background);
 12             } else {
 13               func = background;
 14               db = $cordovaSQLite.openDB(options);
 15             }
 16             if ($.isFunction(func)) {
 17               func();
 18             }
 19           });
 20           return db;
 21         } else {
 22           //使用本地存储。
 23           if (typeof background == ‘function‘) {
 24             func = background;
 25           }
 26           // console.log(window.openDatabase(dbname, "1.0", "", 1024 * 1024 * 100, func));
 27           return db = window.openDatabase(dbname, "", "", 1024 * 1024 * 100, func);
 28         }
 29       },
 30       deleteDB: function (dbName) {
 31         if (window.cordova && is_debug == false) {
 32           return $cordovaSQLite.deleteDB(dbName);
 33         } else {
 34 
 35         }
 36       },
 37       execute: function (db, query, binding) {
 38         // console.log("query " + query);
 39 
 40         if (window.cordova && is_debug == false) {
 41           return $cordovaSQLite.execute(db, query, binding);
 42         } else {
 43           var q = $q.defer();
 44           db.transaction(function (tx) {
 45             tx.executeSql(query, binding, function (tx, result) {
 46                 q.resolve(result);
 47               },
 48               function (transaction, error) {
 49                 console.log(JSON.stringify(error.message));
 50                 q.reject(error);
 51               });
 52           });
 53           return q.promise;
 54         }
 55       },
 56       executeBatchSqls: function (db, batchSqls) {
 57         var defer = $q.defer();
 58         var start = new Date;
 59         db.transaction(function (tx) {
 60           async.eachSeries(batchSqls, function (sql, callback) {
 61             var inStart = new Date;
 62             try {
 63               tx.executeSql(sql, null, function (tx, result) {
 64                 console.log("执行 " + sql + " 耗时: " + (new Date - inStart) + " ms");
 65                 callback(null, result);
 66               }, function (transaction, error) {
 67                 console.error("执行 " + sql + " 出错");
 68                 callback(error);
 69               });
 70             } catch (exception) {
 71               console.error("执行 " + sql + " 出现异常"+JSON.stringify(exception,undefined,2));
 72               callback(exception);
 73             }
 74           }, function (err) {
 75             console.log("执行批量sqls总共耗时:" + (new Date - start) + " ms");
 76             if (err) {
 77               console.error(err);
 78               defer.reject(err);
 79             } else {
 80               defer.resolve();
 81             }
 82           });
 83         });
 84         return defer.promise;
 85       },
 86       insertCollection: function (db, query, bindings) {
 87         if (window.cordova && is_debug == false) {
 88           return $cordovaSQLite.insertCollection(db, query, bindings);
 89         } else {
 90           var q = $q.defer();
 91           var coll = bindings.slice(0); // clone collection
 92           db.transaction(function (tx) {
 93             (function insertOne() {
 94               var record = coll.splice(0, 1)[0]; // get the first record of coll and reduce coll by one
 95               try {
 96                 tx.executeSql(query, record, function (tx, result) {
 97                   if (coll.length === 0) {
 98                     q.resolve(result);
 99                   } else {
100                     insertOne();
101                   }
102                 }, function (transaction, error) {
103                   q.reject(error);
104                   return;
105                 });
106               } catch (exception) {
107                 q.reject(exception);
108               }
109             })();
110           });
111           return q.promise;
112         }
113       },
114       nestedExecute: function (db, query1, query2, binding1, binding2) {
115         if (window.cordova && is_debug == false) {
116           return $cordovaSQLite.nestedExecute(db, query1, query2, binding1, binding2);
117         } else {
118           var q = $q.defer();
119           db.transaction(function (tx) {
120               tx.executeSql(query1, binding1, function (tx, result) {
121                 q.resolve(result);
122                 tx.executeSql(query2, binding2, function (tx, res) {
123                   q.resolve(res);
124                 });
125               });
126             },
127             function (transaction, error) {
128               q.reject(error);
129             });
130 
131           return q.promise;
132         }
133       }
134     }
135   });
View Code

 

使用localstorage创建的一些本地缓存存储的记录的路径

/Users/userName/Library/Developer/CoreSimulator/Devices/udid/data/Containers/Data/Application/9609D07D-0618-4ADB-8A07-CC46D898EC09/Library/Caches/appIdentifier/nsurlcache/...

/Users/userName/Library/Developer/CoreSimulator/Devices/udid/data/Containers/Data/Application/9609D07D-0618-4ADB-8A07-CC46D898EC09/Library/Caches/...localstroage 

诸如此类文件:

file__0.localstorage

file__0.localstorage-shm

file__0.localstorage-wal


从图库中选择的图片的路径 

/Users/userName/Library/Developer/CoreSimulator/Devices/udid/data/Containers/Data/Application/9609D07D-0618-4ADB-8A07-CC46D898EC09/tem/

 

ionic项目打包好Xcode工程,模拟器运行各种沙盒缓存目录

标签:ica   call   try   uil   efault   lap   tab   int   ppi   

原文地址:http://www.cnblogs.com/wjw-blog/p/7116225.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!