Загрузка расширения JSON1 с флаттером sqflite
В моем приложении я использую sqflite для общения с локальной базой данных. Мне нужно заглянуть в данные JSON для конкретных запросов. Расширение JSON1 было бы идеально для этого. Тем не менее, я не могу найти, как загрузить расширение в флаттер-приложение, делая его доступным в моих запросах, так как документация для загрузки расширения написана для языка C, а не для Dart. Итак, несколько вопросов, которые помогут мне в пути:
- Должен ли я компилировать в разных архитектурах для iOS и Android?
- Где должны быть скомпилированные файлы в моем приложении? Я предполагаю, что это не добавлено как актив?
- и, Как получить доступ / загрузить расширение C в моем коде флаттера / дротика?
PS Также приветствуются предложения для других хорошо поддерживаемых локальных баз данных (баз данных документов или баз данных, поддерживающих запросы json) для флаттера. Я посмотрел на couchbase lite, но плагины ( fluttercouch, https://github.com/hemeda3/couchbase-lite-flutter) все еще находятся в стадии разработки.
1 ответ
По умолчанию используется версия SQLite, поставляемая ОС, в которой может быть не включен json1.
Вместо этого используйтеsqflite_ffi
, который будет отправлять копию SQLite вместе с вашим приложением. Любая последняя версия будет автоматически включать json1.
Этот процесс описан здесь: https://github.com/tekartik/sqflite/blob/master/sqflite_common_ffi/doc/using_ffi_instead_of_sqflite.md .
Суть такова:
- Добавлять
sqflite_common_ffi
иsqlite3_flutter_libs
зависимости (помимо ). - Вызов
sqfliteFfiInit()
перед открытием базы данныхsqflite
в вашем приложении.
Дополнительным преимуществом является то, что версия ffi также имеет гораздо лучшую производительность.