Pergunta

Estou trabalhando com um aplicativo PhoneGap que usa o Safari Local Storage (SQLite DB) via JavaScript:

https://developer.apple.com/library/archive/documentation/iphone/conceptual/safarijsdatabaseguide/usingthejavascriptdatabase/usingthejavascriptdatabase.html

Na primeira carga, o aplicativo cria o banco de dados, tabelas e preenche os dados por meio de uma série de instruções de inserção.

Se o usuário fechar o aplicativo enquanto esse processamento estiver acontecendo, meu banco de dados de aplicativos será deixado em um estado inconsistente.

O que eu prefiro fazer é implantar o sqlite db como parte da minha embalagem de aplicativos do iTunes, para que nada deva ser preenchido no App Cold Start. No entanto, não tenho certeza se isso é possível-todos os hits do Google para este tópico que posso encontrar estão se referindo ao SQLite fornecido pelo Core Data, que não é o que estamos usando ...

Se não for possível, eu poderia envolver a coisa toda em uma transação e continuar a retratar quando o aplicativo for reiniciado?

Falhando nisso, acho que posso criar uma tabela simples com uma coluna booleana "is_app_db_loaded?" e defina -o como TRUE depois de processar todas as minhas inserções. Mas isso é realmente nojento ...

Foi útil?

Solução

Eu penso esta solução Pode funcionar para você. que envolve pré-criação da mesa e copiá-la quando o aplicativo é iniciado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top