[ 
https://issues.apache.org/jira/browse/CB-2085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13747370#comment-13747370
 ] 

murali viswanathan edited comment on CB-2085 at 8/22/13 8:44 AM:
-----------------------------------------------------------------

it disturbs the main database of my main application.
Iam using the database in my main application. When i open a page in the inapp 
browser for one of the menus in main application and close using the done 
button. After coming back to the main application, all the pages which are 
database driven are not working as i get 'no such table' error. So i cannot use 
local storage here. Please guide me.

                
      was (Author: muraliv):
    it disturbs the main database.
Iam using the database in my main application. When i open a page in the inapp 
browser and close using the done button. After coming back to the application, 
all the pages which are database driven are not working as i get 'no such 
table' error. So i cannot use local storage here. Please guide me.

                  
> Database Deleted when I open childbrowser
> -----------------------------------------
>
>                 Key: CB-2085
>                 URL: https://issues.apache.org/jira/browse/CB-2085
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.1.0, 2.2.0
>         Environment: Android, Phonegap,
>            Reporter: Ismael Olusola Jimoh
>            Assignee: Joe Bowser
>             Fix For: 2.6.0
>
>         Attachments: 2013-01-03-15-56-57-152.png, 
> 2013-01-03-15-57-03-482.png, 2013-01-03-15-57-10-684.png, 
> 2013-01-03-15-57-20-843.png, 2013-01-03-15-57-30-553.png, 
> 2013-01-03-15-57-40-449.png, 2013-01-03-15-57-54-341.png, 
> 2013-01-03-15-58-23-263.png, 2013-01-03-15-58-30-526.png, 
> 2013-01-03-15-58-37-306.png, 2013-01-03-15-58-51-725.png, 
> 2013-01-03-15-58-59-568.png, Phonegap2_3_Test.rar, 
> Screenshot_2013-02-15-16-21-21.png, Screenshot_2013-02-15-16-21-37.png, 
> Screenshot_2013-02-15-16-22-13.png, Screenshot_2013-02-15-16-22-23.png, 
> Screenshot_2013-02-15-16-26-21.png, Screenshot_2013-02-15-16-26-31.png, 
> Screenshot_2013-02-15-16-26-50.png, Screenshot_2013-02-15-16-27-00.png, 
> Screenshot_2013-02-15-16-39-05.png, Screenshot_2013-02-15-16-39-11.png, 
> Screenshot_2013-02-15-16-39-17.png, Screenshot_2013-02-15-16-39-24.png, 
> Screenshot_2013-02-15-16-39-30.png, Screenshot_2013-02-15-16-39-38.png, 
> ShareSocial.zip
>
>
> Created an app where on the first page, user creates and enters values into a 
> table, upon success, he is sent to a second page which Contains a link to 
> Google using Childbrowser as well as a button to show content of database.
> If user clicks button to show content of database immediately he gets to page 
> 2, the result is as expected but if he should click button to childbrowser, 
> when he closes and clicks the result button, it states table does not exist 
> returning *Error: Undefined*
> However, if user goes back to page one and recreates the whole table as well 
> as enter the values, then clicks childbrowser, return and click return 
> button, it starts working.
> All subsequent visits also work provided you do not clear data/cache.
> Below is a code that can be used to reproduce this:
> ----------------------------------------------------------------------------Main.html
>  (Page1)
> ----------------------------------------------------------------------------
> <!DOCTYPE HTML>
> <html>
>   <head>
>     <meta name="viewport" content="user-scalable=no,width=device-width" />
>     <meta http-equiv="Content-type" content="text/html; charset=utf-8">
>     <script src="cordova-2.1.0.js" type="text/javascript"></script>
>     <script type="text/javascript" charset="utf-8" src="main.js"></script>
>       <script src="jquery-1.8.2.min.js" type="text/javascript"></script>
>    <script src="jquery.mobile-1.2.0.min.js" type="text/javascript"></script>
>    <link rel="stylesheet" href="jquery.mobile-1.2.0.css" type="text/css" 
> media="screen" title="no title" charset="utf-8">
>    
>     <script type="text/javascript">
>     var DBObject;
>     function DoDBFunctionality() {
>               try {
>                       DBObject = window.openDatabase("TestDB", "1.0", 
> "TestDataBase",1024 * 1024 * 2);
>               } catch (ex) {
>                       alert("in catch" + ex.message);
>               }
>               DBObject.transaction(insertIntoDB,onError,onSuccess);
>               function insertIntoDB(tx) {
>                       var name = "Vaibhav";
>                       //tx.executeSql('DROP TABLE IF EXISTS TestTable');
>                       tx.executeSql('CREATE TABLE IF NOT EXISTS TestTable (id 
> unique PRIMARY KEY, data)');
>               tx.executeSql('INSERT INTO TestTable (data) VALUES ("First 
> row")');
>               tx.executeSql('INSERT INTO TestTable (data) VALUES ("Second 
> row")');
>                       //alert("In Insert Function");
>               }
>               function onSuccess() {
>                       alert("Insertion in DB is successfull");
>                       window.open("index1.html");
>               }
>               /*
>                * If DB throws an Error
>                */
>               function onError(err) {
>                       alert("Error is : " +err.message);
>               }
>       }
>       </script>
>       <style>
>       
>       </style>
>   </head>
>   <body  >
>  <h1>Hello DB</h1>
>       <input type="submit" name="DB" value="DB" onclick="DoDBFunctionality()" 
> />
>   </body>
> </html>
> ----------------------------------------------------------------------------
> ----------------------------------------------------------------------------
> Index1.html(page2)
> ----------------------------------------------------------------------------
> <!DOCTYPE HTML>
> <html>
>   <head>
>     <meta name="viewport" content="user-scalable=no,width=device-width" />
>     <meta http-equiv="Content-type" content="text/html; charset=utf-8">
>     <script src="cordova-2.1.0.js" type="text/javascript"></script>
>     <script type="text/javascript" charset="utf-8" src="main.js"></script>
>     <script src="jquery-1.8.2.min.js" type="text/javascript"></script>
>    <script src="jquery.mobile-1.2.0.min.js" type="text/javascript"></script>
>    <link rel="stylesheet" href="jquery.mobile-1.2.0.css" type="text/css" 
> media="screen" title="no title" charset="utf-8">
>     <script src="childbrowser.js" type="text/javascript"></script>
>     <script type="text/javascript">
>     
>     var DBObject //= window.openDatabase("TestDB", "1.0", "TestDataBase",1024 
> * 1024 * 2);
>   
>     function CB() {
>         /*
>          *To open Childbrowser window in application
>          */
>         var url = "http://www.google.com";;
>         window.plugins.childBrowser.showWebPage( url, {showLocationBar: 
> true});
>         //window.plugins.childBrowser.onClose();
>         window.plugins.childBrowser.onClose = closed;
>     }
>     
>      function closed() {
>              //location.reload();
>              //window.openDatabase("TestDB", "1.0", "TestDataBase",1024 * 
> 1024 * 2);
>         }
>     function CallDB() {
>                       try 
>                       {
>                           DBObject = window.openDatabase("TestDB", "1.0", 
> "TestDataBase",1024 * 1024 * 2);
>                       } 
>                       catch (ex)
>                       {
>                           alert("in catch" + ex.message);
>                       }
>                       DBRetrieve();
>                   }
>                   function DBRetrieve() {
>                       DBObject.transaction(retrieveIntoDB,onError,onSuccess);
>               
>                       function retrieveIntoDB(tx) {
>                           tx.executeSql('SELECT * FROM 
> TestTable',[],querySuccess1, onError);
>                       }
>                       function querySuccess1(tx,results) 
>                       {     
>                          /* alert("Returned rows = " + results.rows.length);
>                                 // this will be true since it was a select 
> statement and so rowsAffected was 0
>                                        if (!results.rowsAffected) {
>                                       alert('No rows affected!');
>                                       return false;
>                                  }
>                                  alert("Last inserted row ID = " + 
> results.insertId);*/
>                                 var len = results.rows.length;
>                                   alert("Demo table: " + len + " rows 
> found.");
>                                   for (var i=0; i<len; i++){
>                                       alert("Row = " + i + " ID = " + 
> results.rows.item(i).id + " Data =  " + results.rows.item(i).data);
>                                   }
>                       }       
>                       function onSuccess() {
>                           
>                       }
>               
>                       function onError(err) {
>                           alert("Error is : " +err.message);
>                       }
>                   }
>   
>     
>         function nextpage() {
>                       CallDB();
>        }
>        
>     </script>
>     <style>
>     
>     </style>
>   </head>
>   <body  >
>   <h1>Hello ChildBrowser</h1>
> <input type="submit" name="CB" value="CB" onclick="CB()" /> 
> <br/> 
> <input type="submit" value="DBRetrieve" onclick="nextpage()" />  
> </body>
> </html>
> ----------------------------------------------------------------------------
> I have tested this on Phonegap 2.1 and 2.2.
> I have also tested this on Android 4.0, 4.2 and been able to reproduce on 
> both.
> Thanks, I look forward to your quick response.
> Ismael O. Jimoh

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to