Como Usar Extensões Customizadas de SQLite no Capacitor
O SQLite padrão funciona para a maioria das tarefas. Às vezes, você precisa de mais.
Você pode precisar de um tokenizer customizado para idiomas específicos. Pode precisar de funções matemáticas customizadas ou processamento de texto especial. Elas são chamadas de extensões carregáveis (loadable extensions).
O plugin Capacitor SQLite suporta essas extensões no Android e no iOS.
Por que usar extensões?
- Tokenizers FTS5 customizados: Controle como o texto é dividido para pesquisa.
- Funções SQL customizadas: Execute lógica complexa próxima aos seus dados.
A implementação difere por plataforma.
Android
O SQLite do sistema Android não suporta o carregamento de extensões diretamente. Você deve usar o backend requery.
- Ative a opção requery no seu arquivo
variables.gradle. - Adicione o repositório JitPack ao seu arquivo
build.gradle. - Compile seu código C em bibliotecas nativas (arquivos
.so) para cada arquitetura de CPU. - Coloque esses arquivos na pasta
jniLibs. - Use a opção
androidExtensionsao abrir o banco de dados.
iOS
Apps iOS não podem carregar bibliotecas dinâmicas em tempo de execução. Você deve vincular sua extensão estaticamente.
- Adicione seu arquivo de código fonte C ao seu projeto Xcode.
- Defina a flag de compilador
-DSQLITE_COREpara esse arquivo. - Declare a função
initno seu bridging header. - Registre a extensão no seu
AppDelegateusandosqlite3_auto_extension.
O código C para sua extensão permanece o mesmo. Apenas as etapas de compilação e registro mudam.
Uma vez carregada, sua extensão customizada funciona exatamente como um recurso nativo do SQLite. Você pode usar seu novo tokenizer ou função em suas instruções SQL imediatamente.
Extensões customizadas oferecem o poder do código nativo dentro do seu banco de dados móvel.
Fonte: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k