2015-04-02 2 views
1

J'ai la ligne de code suivante, dans une application Ionic, qui se déclenche lorsque la plate-forme est prête (ci-dessous). Lors du test sur Chrome, cela fonctionne très bien et le journal se déclenche ("Syntaxe de service ionique"). Sur mon téléphone portable, dans Safari, rien ne se passe, il n'y a pratiquement rien qui se déclenche - apparemment la base de données ne s'ouvre même pas.Plugin SQLite fonctionnant sur Mac et Windows mais pas sur Safari on Phone

Ni l'un des codes suivants de travail (après appareil est prêt):

db = window.openDatabase("starter.db", "1.0", "My app", -1) // Nope 

db = $cordovaSQLite.openDB("starter.db"); // Nope 

Si la base de données n'a pas été installé correctement, il ne devrait pas fonctionner dans Chrome trop à droite? Ou n'ai-je pas installé le SQlite correctement?

Je le teste également sur une plateforme Cloud (cloud9), est-ce que cela pourrait avoir quelque chose à voir avec ça?

.run(function($ionicPlatform, $cordovaSQLite, DebugConsole) { 
    $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if (window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    } 
    if (window.StatusBar) { 
     // org.apache.cordova.statusbar required 
     StatusBar.styleDefault(); 
    } 

    if(window.cordova) { 
     // App syntax 
     console.log("App syntax") 
     db = $cordovaSQLite.openDB("starter.db"); 
     $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)"); 
    } else { 
     // Ionic serve syntax 
     console.log("Ionic serve syntax") 
     db = window.openDatabase("starter.db", "1.0", "My app", -1); 
     $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)"); 
    } 

    //$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS team (id integer primary key, name text)"); 

    }); 
}) 

Répondre

2

S'il vous plaît Remplacer la ligne suivante

  db = window.openDatabase("starter.db", "1.0", "My app", -1); 

en suivant la ligne

 db = window.openDatabase("starter.db", '1', 'My app', 1024 * 1024 * 100); // browser 

s'il vous plaît essayer code suivant fonctionner pour les deux Chrome et Safari

.run(function($ionicPlatform, $cordovaSQLite, DebugConsole) { 
     $ionicPlatform.ready(function() { 
     // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
     // for form inputs) 
     if (window.cordova && window.cordova.plugins.Keyboard) { 
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     } 
     if (window.StatusBar) { 
      // org.apache.cordova.statusbar required 
      StatusBar.styleDefault(); 
     } 

     if(window.cordova) { 
      // App syntax 
      console.log("App syntax") 
      db = $cordovaSQLite.openDB("starter.db"); 
      $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)"); 
     } else { 
      // Ionic serve syntax 
      console.log("Ionic serve syntax") 
      db = window.openDatabase("starter.db", '1', 'My app', 1024 * 1024 * 100); // browser 
     // db = window.openDatabase("starter.db", "1.0", "My app", -1); 
      $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)"); 
     } 

     //$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS team (id integer primary key, name text)"); 

     }); 
    }) 
+0

Merci, je vais essayer demain! – JohnAndrews

+0

Merci bro, essayé (mais cela ne fonctionne pas sans remplacer 1 avec 1.0, il fonctionne aussi sur Safari sur le mac mais pas sur l'appareil mobile? – JohnAndrews

+0

signifie que ce code fonctionne dans le navigateur, mais pas dans l'appareil mobile? –