zoukankan      html  css  js  c++  java
  • ionic项目打包好Xcode工程,模拟器运行各种沙盒缓存目录

    用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/

  • 相关阅读:
    JavaScript function (简单总结)
    JavaScript 数组 (简单总结)
    yum update 和 yum upgrate 区别
    git clone警告,提示Warning:Permission denied (publickey)
    ''退格符号笔记
    MySQL Workbench导出Model提示['ERROR 1064 (42000): You have an error in your SQL syntax....syntax to use near 'VISIBLE']
    《Python编程从入门到实践》--- 学习过程笔记(3)列表
    《Python编程从入门到实践》--- 学习过程笔记(2)变量和简单数据类型
    Windows+MyEclipse+MySQL【连接数据库报错caching_sha2_password】
    测试 | 让每一粒尘埃有的放矢
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/7116225.html
Copyright © 2011-2022 走看看